From 5edc6552fe348783e8a89682adebff20d964f2cb Mon Sep 17 00:00:00 2001 From: alllenliufor3 <1009545232@qq.com> Date: Sat, 2 Apr 2022 11:00:28 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0pc=E7=AB=AF=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/busvehicleorder/BusVehicleOrder.java | 263 +------------ .../busvehicleorder/BusVehicleOrderDto.java | 325 ++-------------- .../busvehicleorder/BusVehicleOrderFeign.java | 16 +- .../BusVehicleOrderFeignFallback.java | 11 +- .../busvehicleorder/BusVehicleOrderQuery.java | 351 +----------------- .../busvehicleorder/BusVehicleOrderVo.java | 309 +-------------- .../busvehicleorder/VehicleOrderListVo.java | 44 +++ .../BusVehicleOrderMapper.java | 4 +- .../busvehicleorder/BusVehicleOrderMapper.xml | 20 +- .../busvehicleorder/BusVehicleOrderRest.java | 42 +-- .../BusVehicleOrderService.java | 117 +++--- 11 files changed, 186 insertions(+), 1316 deletions(-) create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/VehicleOrderListVo.java diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrder.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrder.java index 84644a9e78..a27d1515ef 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrder.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrder.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; /** * Project: anrui-base(车型信息)
@@ -45,6 +46,7 @@ import io.swagger.annotations.ApiModelProperty; */ @ApiModel(value = "车辆采购订单", description = "车辆采购订单") @TableName("bus_vehicle_order") +@Data public class BusVehicleOrder extends BaseEntity { private static final long serialVersionUID = 1L; @@ -108,265 +110,4 @@ public class BusVehicleOrder extends BaseEntity { @ApiModelProperty("订单状态") private String orderStatus; // 订单状态 - - /** - * @return 创建组织sid - */ - public String getCreateOrgSid(){ - return createOrgSid; - } - - /** - * @param createOrgSid 创建组织sid to set - */ - public void setCreateOrgSid(String createOrgSid){ - this.createOrgSid = createOrgSid; - } - /** - * @return 订单编号 - */ - public String getOrderNo(){ - return orderNo; - } - - /** - * @param orderNo 订单编号 to set - */ - public void setOrderNo(String orderNo){ - this.orderNo = orderNo; - } - /** - * @return 订单类型 - */ - public String getOrderType(){ - return orderType; - } - - /** - * @param orderType 订单类型 to set - */ - public void setOrderType(String orderType){ - this.orderType = orderType; - } - /** - * @return 订单日期 - */ - public String getOrderDate(){ - return orderDate; - } - - /** - * @param orderDate 订单日期 to set - */ - public void setOrderDate(String orderDate){ - this.orderDate = orderDate; - } - /** - * @return 排产/采购申请sid - */ - public String getPurchaseRequisitionSid(){ - return purchaseRequisitionSid; - } - - /** - * @param purchaseRequisitionSid 排产/采购申请sid to set - */ - public void setPurchaseRequisitionSid(String purchaseRequisitionSid){ - this.purchaseRequisitionSid = purchaseRequisitionSid; - } - /** - * @return 排产/采购申请中车型表sid - */ - public String getPurchaseApplyMediumModelSid(){ - return purchaseApplyMediumModelSid; - } - - /** - * @param purchaseApplyMediumModelSid 排产/采购申请中车型表sid to set - */ - public void setPurchaseApplyMediumModelSid(String purchaseApplyMediumModelSid){ - this.purchaseApplyMediumModelSid = purchaseApplyMediumModelSid; - } - /** - * @return 台数 - */ - public String getPlatformNo(){ - return platformNo; - } - - /** - * @param platformNo 台数 to set - */ - public void setPlatformNo(String platformNo){ - this.platformNo = platformNo; - } - /** - * @return 底盘价格构成 - */ - public String getChassisPriceComposition(){ - return chassisPriceComposition; - } - - /** - * @param chassisPriceComposition 底盘价格构成 to set - */ - public void setChassisPriceComposition(String chassisPriceComposition){ - this.chassisPriceComposition = chassisPriceComposition; - } - /** - * @return 底盘结算价格 - */ - public String getChassisSettlementPrice(){ - return chassisSettlementPrice; - } - - /** - * @param chassisSettlementPrice 底盘结算价格 to set - */ - public void setChassisSettlementPrice(String chassisSettlementPrice){ - this.chassisSettlementPrice = chassisSettlementPrice; - } - /** - * @return 上装价格 - */ - public String getCoatPrice(){ - return coatPrice; - } - - /** - * @param coatPrice 上装价格 to set - */ - public void setCoatPrice(String coatPrice){ - this.coatPrice = coatPrice; - } - /** - * @return 修订差价 - */ - public String getRevisedPriceDifference(){ - return revisedPriceDifference; - } - - /** - * @param revisedPriceDifference 修订差价 to set - */ - public void setRevisedPriceDifference(String revisedPriceDifference){ - this.revisedPriceDifference = revisedPriceDifference; - } - /** - * @return 入库价格 - */ - public String getTreasuryPrice(){ - return treasuryPrice; - } - - /** - * @param treasuryPrice 入库价格 to set - */ - public void setTreasuryPrice(String treasuryPrice){ - this.treasuryPrice = treasuryPrice; - } - /** - * @return 运费 - */ - public String getFreight(){ - return freight; - } - - /** - * @param freight 运费 to set - */ - public void setFreight(String freight){ - this.freight = freight; - } - /** - * @return 销售指导价 - */ - public String getSalesGuidePrice(){ - return salesGuidePrice; - } - - /** - * @param salesGuidePrice 销售指导价 to set - */ - public void setSalesGuidePrice(String salesGuidePrice){ - this.salesGuidePrice = salesGuidePrice; - } - /** - * @return 收到发票日期 - */ - public String getReceivedInvoiceDate(){ - return receivedInvoiceDate; - } - - /** - * @param receivedInvoiceDate 收到发票日期 to set - */ - public void setReceivedInvoiceDate(String receivedInvoiceDate){ - this.receivedInvoiceDate = receivedInvoiceDate; - } - /** - * @return 发票金额 - */ - public String getInvoiceAmount(){ - return invoiceAmount; - } - - /** - * @param invoiceAmount 发票金额 to set - */ - public void setInvoiceAmount(String invoiceAmount){ - this.invoiceAmount = invoiceAmount; - } - /** - * @return 预计上线日期 - */ - public String getExpectLaunchDate(){ - return expectLaunchDate; - } - - /** - * @param expectLaunchDate 预计上线日期 to set - */ - public void setExpectLaunchDate(String expectLaunchDate){ - this.expectLaunchDate = expectLaunchDate; - } - /** - * @return 上线日期 - */ - public String getLaunchDate(){ - return launchDate; - } - - /** - * @param launchDate 上线日期 to set - */ - public void setLaunchDate(String launchDate){ - this.launchDate = launchDate; - } - /** - * @return 下线日期 - */ - public String getOfflineDate(){ - return offlineDate; - } - - /** - * @param offlineDate 下线日期 to set - */ - public void setOfflineDate(String offlineDate){ - this.offlineDate = offlineDate; - } - /** - * @return 订单状态 - */ - public String getOrderStatus(){ - return orderStatus; - } - - /** - * @param orderStatus 订单状态 to set - */ - public void setOrderStatus(String orderStatus){ - this.orderStatus = orderStatus; - } } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderDto.java index 2c86cc9d99..86d6ea66da 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderDto.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderDto.java @@ -26,9 +26,16 @@ package com.yxt.anrui.base.api.busvehicleorder; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.dto.Dto; +import com.yxt.common.core.utils.desensitized.Sensitive; +import com.yxt.common.core.utils.desensitized.SensitiveTypeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; /** * Project: anrui-base(车型信息)
@@ -44,8 +51,11 @@ import io.swagger.annotations.ApiModelProperty; * @since 1.0 */ @ApiModel(value = "车辆采购订单 数据传输对象", description = "车辆采购订单 数据传输对象") +@Data public class BusVehicleOrderDto implements Dto { + @ApiModelProperty("采购订单sid") + private String sid; @ApiModelProperty("创建组织sid") private String createOrgSid; // 创建组织sid @@ -54,337 +64,56 @@ public class BusVehicleOrderDto implements Dto { private String orderNo; // 订单编号 @ApiModelProperty("订单类型") + @NotBlank(message = "订单类型不能为空") private String orderType; // 订单类型 @ApiModelProperty("订单日期") + @Pattern(regexp = "^(\\s*)|([1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]))$", message = "订单日期格式不正确") private String orderDate; // 订单日期 @ApiModelProperty("排产/采购申请sid") private String purchaseRequisitionSid; // 排产/采购申请sid @ApiModelProperty("排产/采购申请中车型表sid") + @NotBlank(message = "车型表sid不能为空") private String purchaseApplyMediumModelSid; // 排产/采购申请中车型表sid @ApiModelProperty("台数") + @NotBlank(message = "台数不能为空") + @Pattern(regexp = "^(\\s*)|([1-9]\\d*)$", message = "台数输入不正确") private String platformNo; // 台数 - @ApiModelProperty("底盘价格构成") - private String chassisPriceComposition; // 底盘价格构成 - - @ApiModelProperty("底盘结算价格") - private String chassisSettlementPrice; // 底盘结算价格 - @ApiModelProperty("上装价格") + @Pattern(regexp = "^(\\s*)|(([1-9][0-9]*)|(([0]\\.\\d{0,2}|[1-9][0-9]*\\.\\d{0,2})))$", message = "上装价格格式输入不正确") private String coatPrice; // 上装价格 - @ApiModelProperty("修订差价") - private String revisedPriceDifference; // 修订差价 - @ApiModelProperty("入库价格") - private String treasuryPrice; // 入库价格 + @Pattern(regexp = "^(\\s*)|(([1-9][0-9]*)|(([0]\\.\\d{0,2}|[1-9][0-9]*\\.\\d{0,2})))$", message = "入库价格格式输入不正确") + private String treasuryPrice; // 入库价格 @ApiModelProperty("运费") + @Pattern(regexp = "^(\\s*)|(([1-9][0-9]*)|(([0]\\.\\d{0,2}|[1-9][0-9]*\\.\\d{0,2})))$", message = "运费格式输入不正确") private String freight; // 运费 @ApiModelProperty("销售指导价") + @Pattern(regexp = "^(\\s*)|(([1-9][0-9]*)|(([0]\\.\\d{0,2}|[1-9][0-9]*\\.\\d{0,2})))$", message = "销售指导价格式输入不正确") private String salesGuidePrice; // 销售指导价 - - @ApiModelProperty("收到发票日期") - private String receivedInvoiceDate; // 收到发票日期 - - @ApiModelProperty("发票金额") - private String invoiceAmount; // 发票金额 - + @ApiModelProperty("预计上线日期") + @Pattern(regexp = "^(\\s*)|([1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]))$", message = "预计上线日期格式不正确") private String expectLaunchDate; // 预计上线日期 @ApiModelProperty("上线日期") + @Pattern(regexp = "^(\\s*)|([1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]))$", message = "上线日期格式不正确") private String launchDate; // 上线日期 @ApiModelProperty("下线日期") + @Pattern(regexp = "^(\\s*)|([1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]))$", message = "下线日期格式不正确") private String offlineDate; // 下线日期 + + @ApiModelProperty("排产申请编号") + private String applicationCode; @ApiModelProperty("订单状态") private String orderStatus; // 订单状态 - - - /** - * @return 创建组织sid - */ - public String getCreateOrgSid(){ - return createOrgSid; - } - - /** - * @param createOrgSid 创建组织sid to set - */ - public void setCreateOrgSid(String createOrgSid){ - this.createOrgSid = createOrgSid; - } - - /** - * @return 订单编号 - */ - public String getOrderNo(){ - return orderNo; - } - - /** - * @param orderNo 订单编号 to set - */ - public void setOrderNo(String orderNo){ - this.orderNo = orderNo; - } - - /** - * @return 订单类型 - */ - public String getOrderType(){ - return orderType; - } - - /** - * @param orderType 订单类型 to set - */ - public void setOrderType(String orderType){ - this.orderType = orderType; - } - - /** - * @return 订单日期 - */ - public String getOrderDate(){ - return orderDate; - } - - /** - * @param orderDate 订单日期 to set - */ - public void setOrderDate(String orderDate){ - this.orderDate = orderDate; - } - - /** - * @return 排产/采购申请sid - */ - public String getPurchaseRequisitionSid(){ - return purchaseRequisitionSid; - } - - /** - * @param purchaseRequisitionSid 排产/采购申请sid to set - */ - public void setPurchaseRequisitionSid(String purchaseRequisitionSid){ - this.purchaseRequisitionSid = purchaseRequisitionSid; - } - - /** - * @return 排产/采购申请中车型表sid - */ - public String getPurchaseApplyMediumModelSid(){ - return purchaseApplyMediumModelSid; - } - - /** - * @param purchaseApplyMediumModelSid 排产/采购申请中车型表sid to set - */ - public void setPurchaseApplyMediumModelSid(String purchaseApplyMediumModelSid){ - this.purchaseApplyMediumModelSid = purchaseApplyMediumModelSid; - } - - /** - * @return 台数 - */ - public String getPlatformNo(){ - return platformNo; - } - - /** - * @param platformNo 台数 to set - */ - public void setPlatformNo(String platformNo){ - this.platformNo = platformNo; - } - - /** - * @return 底盘价格构成 - */ - public String getChassisPriceComposition(){ - return chassisPriceComposition; - } - - /** - * @param chassisPriceComposition 底盘价格构成 to set - */ - public void setChassisPriceComposition(String chassisPriceComposition){ - this.chassisPriceComposition = chassisPriceComposition; - } - - /** - * @return 底盘结算价格 - */ - public String getChassisSettlementPrice(){ - return chassisSettlementPrice; - } - - /** - * @param chassisSettlementPrice 底盘结算价格 to set - */ - public void setChassisSettlementPrice(String chassisSettlementPrice){ - this.chassisSettlementPrice = chassisSettlementPrice; - } - - /** - * @return 上装价格 - */ - public String getCoatPrice(){ - return coatPrice; - } - - /** - * @param coatPrice 上装价格 to set - */ - public void setCoatPrice(String coatPrice){ - this.coatPrice = coatPrice; - } - - /** - * @return 修订差价 - */ - public String getRevisedPriceDifference(){ - return revisedPriceDifference; - } - - /** - * @param revisedPriceDifference 修订差价 to set - */ - public void setRevisedPriceDifference(String revisedPriceDifference){ - this.revisedPriceDifference = revisedPriceDifference; - } - - /** - * @return 入库价格 - */ - public String getTreasuryPrice(){ - return treasuryPrice; - } - - /** - * @param treasuryPrice 入库价格 to set - */ - public void setTreasuryPrice(String treasuryPrice){ - this.treasuryPrice = treasuryPrice; - } - - /** - * @return 运费 - */ - public String getFreight(){ - return freight; - } - - /** - * @param freight 运费 to set - */ - public void setFreight(String freight){ - this.freight = freight; - } - - /** - * @return 销售指导价 - */ - public String getSalesGuidePrice(){ - return salesGuidePrice; - } - - /** - * @param salesGuidePrice 销售指导价 to set - */ - public void setSalesGuidePrice(String salesGuidePrice){ - this.salesGuidePrice = salesGuidePrice; - } - - /** - * @return 收到发票日期 - */ - public String getReceivedInvoiceDate(){ - return receivedInvoiceDate; - } - - /** - * @param receivedInvoiceDate 收到发票日期 to set - */ - public void setReceivedInvoiceDate(String receivedInvoiceDate){ - this.receivedInvoiceDate = receivedInvoiceDate; - } - - /** - * @return 发票金额 - */ - public String getInvoiceAmount(){ - return invoiceAmount; - } - - /** - * @param invoiceAmount 发票金额 to set - */ - public void setInvoiceAmount(String invoiceAmount){ - this.invoiceAmount = invoiceAmount; - } - - /** - * @return 预计上线日期 - */ - public String getExpectLaunchDate(){ - return expectLaunchDate; - } - - /** - * @param expectLaunchDate 预计上线日期 to set - */ - public void setExpectLaunchDate(String expectLaunchDate){ - this.expectLaunchDate = expectLaunchDate; - } - - /** - * @return 上线日期 - */ - public String getLaunchDate(){ - return launchDate; - } - - /** - * @param launchDate 上线日期 to set - */ - public void setLaunchDate(String launchDate){ - this.launchDate = launchDate; - } - - /** - * @return 下线日期 - */ - public String getOfflineDate(){ - return offlineDate; - } - - /** - * @param offlineDate 下线日期 to set - */ - public void setOfflineDate(String offlineDate){ - this.offlineDate = offlineDate; - } - - /** - * @return 订单状态 - */ - public String getOrderStatus(){ - return orderStatus; - } - - /** - * @param orderStatus 订单状态 to set - */ - public void setOrderStatus(String orderStatus){ - this.orderStatus = orderStatus; - } } \ No newline at end of file diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeign.java index e16b211630..45847a560e 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeign.java @@ -34,6 +34,8 @@ import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; + /** * Project: anrui-base(车型信息)
* File: BusVehicleOrderFeign.java
@@ -57,22 +59,18 @@ public interface BusVehicleOrderFeign { @ApiOperation("根据条件分页查询数据的列表") @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq); - - @ApiOperation("新增保存") - @PostMapping("/save") - public ResultBean save(@RequestBody BusVehicleOrderDto dto); + public ResultBean> listPage(@RequestBody PagerQuery pq); - @ApiOperation("修改保存") - @PostMapping("/update/{sid}") - public ResultBean update(@RequestBody BusVehicleOrderDto dto, @PathVariable("sid") String sid); + @ApiOperation("新增或修改车辆采购订单") + @PostMapping("/saveOrUpdateVehicleOrder") + public ResultBean saveOrUpdateVehicleOrder(@RequestBody @Valid BusVehicleOrderDto dto); @ApiOperation("根据sid批量删除") @PostMapping("/delBySids") public ResultBean delBySids(@RequestBody String[] sids); - @ApiOperation("根据SID获取一条记录") + @ApiOperation("根据sid查询车辆采购订单") @GetMapping("/fetchBySid/{sid}") public ResultBean fetchBySid(@PathVariable("sid") String sid); diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeignFallback.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeignFallback.java index c154bc9f89..d590a54a58 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeignFallback.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeignFallback.java @@ -48,19 +48,14 @@ import org.springframework.stereotype.Component; public class BusVehicleOrderFeignFallback implements BusVehicleOrderFeign { @Override - public ResultBean> listPage(PagerQuery pq) { + public ResultBean listPage(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); return rb.setMsg("接口anrui-base/busvehicleorder/listPage无法访问"); } @Override - public ResultBean save(BusVehicleOrderDto dto) { - return ResultBean.fireFail().setMsg("接口anrui-base/busvehicleorder/save无法访问"); - } - - @Override - public ResultBean update(BusVehicleOrderDto dto, String sid) { - return ResultBean.fireFail().setMsg("接口anrui-base/busvehicleorder/update无法访问"); + public ResultBean saveOrUpdateVehicleOrder(BusVehicleOrderDto dto) { + return ResultBean.fireFail().setMsg("接口anrui-base/busvehicleorder/saveOrUpdateVehicleOrder无法访问"); } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderQuery.java index 654efa0bde..77f87af344 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderQuery.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderQuery.java @@ -29,6 +29,7 @@ package com.yxt.anrui.base.api.busvehicleorder; import com.yxt.common.core.query.Query; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; /** * Project: anrui-base(车型信息)
@@ -44,347 +45,25 @@ import io.swagger.annotations.ApiModelProperty; * @since 1.0 */ @ApiModel(value = "车辆采购订单 查询条件", description = "车辆采购订单 查询条件") +@Data public class BusVehicleOrderQuery implements Query { - @ApiModelProperty("创建组织sid") - private String createOrgSid; // 创建组织sid - @ApiModelProperty("订单编号") - private String orderNo; // 订单编号 - - @ApiModelProperty("订单类型") - private String orderType; // 订单类型 - - @ApiModelProperty("订单日期") - private String orderDate; // 订单日期 - - @ApiModelProperty("排产/采购申请sid") - private String purchaseRequisitionSid; // 排产/采购申请sid - - @ApiModelProperty("排产/采购申请中车型表sid") - private String purchaseApplyMediumModelSid; // 排产/采购申请中车型表sid - - @ApiModelProperty("台数") - private String platformNo; // 台数 - - @ApiModelProperty("底盘价格构成") - private String chassisPriceComposition; // 底盘价格构成 - - @ApiModelProperty("底盘结算价格") - private String chassisSettlementPrice; // 底盘结算价格 - - @ApiModelProperty("上装价格") - private String coatPrice; // 上装价格 - - @ApiModelProperty("修订差价") - private String revisedPriceDifference; // 修订差价 - - @ApiModelProperty("入库价格") - private String treasuryPrice; // 入库价格 - - @ApiModelProperty("运费") - private String freight; // 运费 - - @ApiModelProperty("销售指导价") - private String salesGuidePrice; // 销售指导价 - - @ApiModelProperty("收到发票日期") - private String receivedInvoiceDate; // 收到发票日期 - - @ApiModelProperty("发票金额") - private String invoiceAmount; // 发票金额 - - @ApiModelProperty("预计上线日期") - private String expectLaunchDate; // 预计上线日期 - - @ApiModelProperty("上线日期") - private String launchDate; // 上线日期 + private String orderNo; + + @ApiModelProperty("订单类型") + private String orderType; + + @ApiModelProperty("订单状态") + private String orderStatus; - @ApiModelProperty("下线日期") - private String offlineDate; // 下线日期 + @ApiModelProperty("开始日期") + private String startDate; - @ApiModelProperty("订单状态") - private String orderStatus; // 订单状态 + @ApiModelProperty("结束日期") + private String endDate; - - /** - * @return 创建组织sid - */ - public String getCreateOrgSid(){ - return createOrgSid; - } - - /** - * @param createOrgSid 创建组织sid to set - */ - public void setCreateOrgSid(String createOrgSid){ - this.createOrgSid = createOrgSid; - } - - /** - * @return 订单编号 - */ - public String getOrderNo(){ - return orderNo; - } - - /** - * @param orderNo 订单编号 to set - */ - public void setOrderNo(String orderNo){ - this.orderNo = orderNo; - } - - /** - * @return 订单类型 - */ - public String getOrderType(){ - return orderType; - } - - /** - * @param orderType 订单类型 to set - */ - public void setOrderType(String orderType){ - this.orderType = orderType; - } - - /** - * @return 订单日期 - */ - public String getOrderDate(){ - return orderDate; - } - - /** - * @param orderDate 订单日期 to set - */ - public void setOrderDate(String orderDate){ - this.orderDate = orderDate; - } - - /** - * @return 排产/采购申请sid - */ - public String getPurchaseRequisitionSid(){ - return purchaseRequisitionSid; - } - - /** - * @param purchaseRequisitionSid 排产/采购申请sid to set - */ - public void setPurchaseRequisitionSid(String purchaseRequisitionSid){ - this.purchaseRequisitionSid = purchaseRequisitionSid; - } - - /** - * @return 排产/采购申请中车型表sid - */ - public String getPurchaseApplyMediumModelSid(){ - return purchaseApplyMediumModelSid; - } - - /** - * @param purchaseApplyMediumModelSid 排产/采购申请中车型表sid to set - */ - public void setPurchaseApplyMediumModelSid(String purchaseApplyMediumModelSid){ - this.purchaseApplyMediumModelSid = purchaseApplyMediumModelSid; - } - - /** - * @return 台数 - */ - public String getPlatformNo(){ - return platformNo; - } - - /** - * @param platformNo 台数 to set - */ - public void setPlatformNo(String platformNo){ - this.platformNo = platformNo; - } - - /** - * @return 底盘价格构成 - */ - public String getChassisPriceComposition(){ - return chassisPriceComposition; - } - - /** - * @param chassisPriceComposition 底盘价格构成 to set - */ - public void setChassisPriceComposition(String chassisPriceComposition){ - this.chassisPriceComposition = chassisPriceComposition; - } - - /** - * @return 底盘结算价格 - */ - public String getChassisSettlementPrice(){ - return chassisSettlementPrice; - } - - /** - * @param chassisSettlementPrice 底盘结算价格 to set - */ - public void setChassisSettlementPrice(String chassisSettlementPrice){ - this.chassisSettlementPrice = chassisSettlementPrice; - } - - /** - * @return 上装价格 - */ - public String getCoatPrice(){ - return coatPrice; - } - - /** - * @param coatPrice 上装价格 to set - */ - public void setCoatPrice(String coatPrice){ - this.coatPrice = coatPrice; - } - - /** - * @return 修订差价 - */ - public String getRevisedPriceDifference(){ - return revisedPriceDifference; - } - - /** - * @param revisedPriceDifference 修订差价 to set - */ - public void setRevisedPriceDifference(String revisedPriceDifference){ - this.revisedPriceDifference = revisedPriceDifference; - } - - /** - * @return 入库价格 - */ - public String getTreasuryPrice(){ - return treasuryPrice; - } - - /** - * @param treasuryPrice 入库价格 to set - */ - public void setTreasuryPrice(String treasuryPrice){ - this.treasuryPrice = treasuryPrice; - } - - /** - * @return 运费 - */ - public String getFreight(){ - return freight; - } - - /** - * @param freight 运费 to set - */ - public void setFreight(String freight){ - this.freight = freight; - } - - /** - * @return 销售指导价 - */ - public String getSalesGuidePrice(){ - return salesGuidePrice; - } - - /** - * @param salesGuidePrice 销售指导价 to set - */ - public void setSalesGuidePrice(String salesGuidePrice){ - this.salesGuidePrice = salesGuidePrice; - } - - /** - * @return 收到发票日期 - */ - public String getReceivedInvoiceDate(){ - return receivedInvoiceDate; - } - - /** - * @param receivedInvoiceDate 收到发票日期 to set - */ - public void setReceivedInvoiceDate(String receivedInvoiceDate){ - this.receivedInvoiceDate = receivedInvoiceDate; - } - - /** - * @return 发票金额 - */ - public String getInvoiceAmount(){ - return invoiceAmount; - } - - /** - * @param invoiceAmount 发票金额 to set - */ - public void setInvoiceAmount(String invoiceAmount){ - this.invoiceAmount = invoiceAmount; - } - - /** - * @return 预计上线日期 - */ - public String getExpectLaunchDate(){ - return expectLaunchDate; - } - - /** - * @param expectLaunchDate 预计上线日期 to set - */ - public void setExpectLaunchDate(String expectLaunchDate){ - this.expectLaunchDate = expectLaunchDate; - } - - /** - * @return 上线日期 - */ - public String getLaunchDate(){ - return launchDate; - } - - /** - * @param launchDate 上线日期 to set - */ - public void setLaunchDate(String launchDate){ - this.launchDate = launchDate; - } - - /** - * @return 下线日期 - */ - public String getOfflineDate(){ - return offlineDate; - } - - /** - * @param offlineDate 下线日期 to set - */ - public void setOfflineDate(String offlineDate){ - this.offlineDate = offlineDate; - } - - /** - * @return 订单状态 - */ - public String getOrderStatus(){ - return orderStatus; - } - - /** - * @param orderStatus 订单状态 to set - */ - public void setOrderStatus(String orderStatus){ - this.orderStatus = orderStatus; - } + @ApiModelProperty("车型") + private String modelName; } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderVo.java index 924ab0a6ad..c5ea45adaa 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderVo.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderVo.java @@ -29,6 +29,7 @@ package com.yxt.anrui.base.api.busvehicleorder; import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; /** * Project: anrui-base(车型信息)
@@ -44,6 +45,7 @@ import io.swagger.annotations.ApiModelProperty; * @since 1.0 */ @ApiModel(value = "车辆采购订单 视图数据对象", description = "车辆采购订单 视图数据对象") +@Data public class BusVehicleOrderVo implements Vo { @@ -68,18 +70,9 @@ public class BusVehicleOrderVo implements Vo { @ApiModelProperty("台数") private String platformNo; // 台数 - @ApiModelProperty("底盘价格构成") - private String chassisPriceComposition; // 底盘价格构成 - - @ApiModelProperty("底盘结算价格") - private String chassisSettlementPrice; // 底盘结算价格 - @ApiModelProperty("上装价格") private String coatPrice; // 上装价格 - @ApiModelProperty("修订差价") - private String revisedPriceDifference; // 修订差价 - @ApiModelProperty("入库价格") private String treasuryPrice; // 入库价格 @@ -89,302 +82,18 @@ public class BusVehicleOrderVo implements Vo { @ApiModelProperty("销售指导价") private String salesGuidePrice; // 销售指导价 - @ApiModelProperty("收到发票日期") - private String receivedInvoiceDate; // 收到发票日期 - - @ApiModelProperty("发票金额") - private String invoiceAmount; // 发票金额 - @ApiModelProperty("预计上线日期") private String expectLaunchDate; // 预计上线日期 - - @ApiModelProperty("上线日期") + + @ApiModelProperty("上线日期") private String launchDate; // 上线日期 - - @ApiModelProperty("下线日期") + + @ApiModelProperty("下线日期") private String offlineDate; // 下线日期 + + @ApiModelProperty("排产申请编号") + private String applicationCode; @ApiModelProperty("订单状态") private String orderStatus; // 订单状态 - - - /** - * @return 创建组织sid - */ - public String getCreateOrgSid(){ - return createOrgSid; - } - - /** - * @param createOrgSid 创建组织sid to set - */ - public void setCreateOrgSid(String createOrgSid){ - this.createOrgSid = createOrgSid; - } - - /** - * @return 订单编号 - */ - public String getOrderNo(){ - return orderNo; - } - - /** - * @param orderNo 订单编号 to set - */ - public void setOrderNo(String orderNo){ - this.orderNo = orderNo; - } - - /** - * @return 订单类型 - */ - public String getOrderType(){ - return orderType; - } - - /** - * @param orderType 订单类型 to set - */ - public void setOrderType(String orderType){ - this.orderType = orderType; - } - - /** - * @return 订单日期 - */ - public String getOrderDate(){ - return orderDate; - } - - /** - * @param orderDate 订单日期 to set - */ - public void setOrderDate(String orderDate){ - this.orderDate = orderDate; - } - - /** - * @return 排产/采购申请sid - */ - public String getPurchaseRequisitionSid(){ - return purchaseRequisitionSid; - } - - /** - * @param purchaseRequisitionSid 排产/采购申请sid to set - */ - public void setPurchaseRequisitionSid(String purchaseRequisitionSid){ - this.purchaseRequisitionSid = purchaseRequisitionSid; - } - - /** - * @return 排产/采购申请中车型表sid - */ - public String getPurchaseApplyMediumModelSid(){ - return purchaseApplyMediumModelSid; - } - - /** - * @param purchaseApplyMediumModelSid 排产/采购申请中车型表sid to set - */ - public void setPurchaseApplyMediumModelSid(String purchaseApplyMediumModelSid){ - this.purchaseApplyMediumModelSid = purchaseApplyMediumModelSid; - } - - /** - * @return 台数 - */ - public String getPlatformNo(){ - return platformNo; - } - - /** - * @param platformNo 台数 to set - */ - public void setPlatformNo(String platformNo){ - this.platformNo = platformNo; - } - - /** - * @return 底盘价格构成 - */ - public String getChassisPriceComposition(){ - return chassisPriceComposition; - } - - /** - * @param chassisPriceComposition 底盘价格构成 to set - */ - public void setChassisPriceComposition(String chassisPriceComposition){ - this.chassisPriceComposition = chassisPriceComposition; - } - - /** - * @return 底盘结算价格 - */ - public String getChassisSettlementPrice(){ - return chassisSettlementPrice; - } - - /** - * @param chassisSettlementPrice 底盘结算价格 to set - */ - public void setChassisSettlementPrice(String chassisSettlementPrice){ - this.chassisSettlementPrice = chassisSettlementPrice; - } - - /** - * @return 上装价格 - */ - public String getCoatPrice(){ - return coatPrice; - } - - /** - * @param coatPrice 上装价格 to set - */ - public void setCoatPrice(String coatPrice){ - this.coatPrice = coatPrice; - } - - /** - * @return 修订差价 - */ - public String getRevisedPriceDifference(){ - return revisedPriceDifference; - } - - /** - * @param revisedPriceDifference 修订差价 to set - */ - public void setRevisedPriceDifference(String revisedPriceDifference){ - this.revisedPriceDifference = revisedPriceDifference; - } - - /** - * @return 入库价格 - */ - public String getTreasuryPrice(){ - return treasuryPrice; - } - - /** - * @param treasuryPrice 入库价格 to set - */ - public void setTreasuryPrice(String treasuryPrice){ - this.treasuryPrice = treasuryPrice; - } - - /** - * @return 运费 - */ - public String getFreight(){ - return freight; - } - - /** - * @param freight 运费 to set - */ - public void setFreight(String freight){ - this.freight = freight; - } - - /** - * @return 销售指导价 - */ - public String getSalesGuidePrice(){ - return salesGuidePrice; - } - - /** - * @param salesGuidePrice 销售指导价 to set - */ - public void setSalesGuidePrice(String salesGuidePrice){ - this.salesGuidePrice = salesGuidePrice; - } - - /** - * @return 收到发票日期 - */ - public String getReceivedInvoiceDate(){ - return receivedInvoiceDate; - } - - /** - * @param receivedInvoiceDate 收到发票日期 to set - */ - public void setReceivedInvoiceDate(String receivedInvoiceDate){ - this.receivedInvoiceDate = receivedInvoiceDate; - } - - /** - * @return 发票金额 - */ - public String getInvoiceAmount(){ - return invoiceAmount; - } - - /** - * @param invoiceAmount 发票金额 to set - */ - public void setInvoiceAmount(String invoiceAmount){ - this.invoiceAmount = invoiceAmount; - } - - /** - * @return 预计上线日期 - */ - public String getExpectLaunchDate(){ - return expectLaunchDate; - } - - /** - * @param expectLaunchDate 预计上线日期 to set - */ - public void setExpectLaunchDate(String expectLaunchDate){ - this.expectLaunchDate = expectLaunchDate; - } - - /** - * @return 上线日期 - */ - public String getLaunchDate(){ - return launchDate; - } - - /** - * @param launchDate 上线日期 to set - */ - public void setLaunchDate(String launchDate){ - this.launchDate = launchDate; - } - - /** - * @return 下线日期 - */ - public String getOfflineDate(){ - return offlineDate; - } - - /** - * @param offlineDate 下线日期 to set - */ - public void setOfflineDate(String offlineDate){ - this.offlineDate = offlineDate; - } - - /** - * @return 订单状态 - */ - public String getOrderStatus(){ - return orderStatus; - } - - /** - * @param orderStatus 订单状态 to set - */ - public void setOrderStatus(String orderStatus){ - this.orderStatus = orderStatus; - } } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/VehicleOrderListVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/VehicleOrderListVo.java new file mode 100644 index 0000000000..66a48f44e9 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/VehicleOrderListVo.java @@ -0,0 +1,44 @@ +package com.yxt.anrui.base.api.busvehicleorder; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/01 + */ +@ApiModel("采购订单列表") +@Data +public class VehicleOrderListVo implements Vo { + + @ApiModelProperty("订单状态") + private String orderStatus; + + @ApiModelProperty("订单编号") + private String orderNo; + + @ApiModelProperty("订单日期") + private String orderDate; + + @ApiModelProperty("订单类型") + private String orderType; + + @ApiModelProperty("车型") + private String modelName; + + @ApiModelProperty("台数") + private String platformNo; + + @ApiModelProperty("预计上线日期") + private String expectLaunchDate; + + @ApiModelProperty("上线日期") + private String launchDate; + + @ApiModelProperty("下线日期") + private String offlineDate; +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.java index c8aea4f268..689b2b4624 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.java @@ -59,7 +59,7 @@ public interface BusVehicleOrderMapper extends BaseMapper { //@Update("update bus_vehicle_order set name=#{msg} where id=#{id}") //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); @@ -103,4 +103,6 @@ public interface BusVehicleOrderMapper extends BaseMapper { * @return */ AppCurrentCarDetailVo getAppProductionSchedulingDetailConfigVo(@Param("modelSid") String modelSid, @Param("configSid") String configSid); + + BusVehicleOrderVo selectBySid(@Param("sid") String sid); } \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.xml index 0583bd3e1d..d9e5bad873 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.xml +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.xml @@ -3,9 +3,12 @@ - + SELECT bvo.*,bvm.modelName + FROM bus_vehicle_order bvo + LEFT JOIN base_vehicle_model bvm ON bvo.purchaseApplyMediumModelSid=bvm.sid + LEFT JOIN bus_vehicle_apply_detail bvad ON bvo.purchaseApplyMediumModelSid = bvad.sid + LEFT JOIN bus_vehicle_apply bva ON bvad.applySid=bva.sid ${ew.sqlSegment} @@ -161,4 +164,15 @@ WHERE bvc.modelSid = #{modelSid} AND bvc.configurationItemsSid = #{configSid} + + \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java index 791cc3469a..4b33778302 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java @@ -28,12 +28,14 @@ package com.yxt.anrui.base.biz.busvehicleorder; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailCongfigVo; import com.yxt.anrui.base.api.busvehicleorder.*; +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; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -59,47 +61,35 @@ public class BusVehicleOrderRest implements BusVehicleOrderFeign { private BusVehicleOrderService busVehicleOrderService; @Override - @ApiOperation("根据条件分页查询数据的列表") - @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq) { + public ResultBean> listPage(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); - PagerVo pv = busVehicleOrderService.listPageVo(pq); + PagerVo pv = busVehicleOrderService.listPageVo(pq); return rb.success().setData(pv); } @Override - @ApiOperation("新增保存") - @PostMapping("/save") - public ResultBean save(@RequestBody BusVehicleOrderDto dto) { - ResultBean rb = ResultBean.fireFail(); - busVehicleOrderService.saveOrUpdateDto(dto); - return rb.success(); - } - - @Override - @ApiOperation("修改保存") - @PostMapping("/update/{sid}") - public ResultBean update(@RequestBody BusVehicleOrderDto dto, @PathVariable("sid") String sid) { - ResultBean rb = ResultBean.fireFail(); - busVehicleOrderService.updateBySid(dto.toMap(), sid); - return rb.success(); + public ResultBean saveOrUpdateVehicleOrder(BusVehicleOrderDto dto) { + if (StringUtils.isNotBlank(dto.getLaunchDate()) && StringUtils.isNotBlank(dto.getOfflineDate())) { + long launchTime = DateUtils.dateStrConvertDate(dto.getLaunchDate(), "yyyy-MM-dd").getTime(); + long OfflineTime = DateUtils.dateStrConvertDate(dto.getOfflineDate(), "yyyy-MM-dd").getTime(); + if (launchTime > OfflineTime) { + return new ResultBean().setMsg("下线日期不能小于上线日期"); + } + } + return busVehicleOrderService.saveOrUpdateVehicleOrder(dto); } @Override - @ApiOperation("根据sid批量删除") - @PostMapping("/delBySids") - public ResultBean delBySids(@RequestBody String[] sids) { + public ResultBean delBySids(String[] sids) { ResultBean rb = ResultBean.fireFail(); busVehicleOrderService.delBySids(sids); return rb.success(); } @Override - @ApiOperation("根据SID获取一条记录") - @GetMapping("/fetchBySid/{sid}") - public ResultBean fetchBySid(@PathVariable("sid") String sid) { + public ResultBean fetchBySid(String sid) { ResultBean rb = ResultBean.fireFail(); - BusVehicleOrder vo = busVehicleOrderService.fetchBySid(sid); + BusVehicleOrderVo vo = busVehicleOrderService.selectBySid(sid); return rb.success().setData(vo); } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderService.java index 3bf0b71cab..c32d309bd5 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderService.java @@ -38,8 +38,10 @@ import com.yxt.anrui.base.api.busvehicleorder.*; import com.yxt.anrui.base.biz.basemodelconfig.BaseModelConfigService; import com.yxt.common.base.config.component.FileUploadComponent; 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; import com.yxt.common.core.vo.PagerVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -47,6 +49,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.UUID; /** @@ -95,95 +98,38 @@ public class BusVehicleOrderService extends MybatisBaseService wrapper.like("name", query.getName()).or().like("remark", query.getName())); QueryWrapper qw = new QueryWrapper<>(); - - if (StringUtils.isNotBlank(query.getCreateOrgSid())) { - qw.eq("createOrgSid", query.getCreateOrgSid()); - } - if (StringUtils.isNotBlank(query.getOrderNo())) { - qw.eq("orderNo", query.getOrderNo()); + qw.like("bvo.orderNo", query.getOrderNo()); } if (StringUtils.isNotBlank(query.getOrderType())) { - qw.eq("orderType", query.getOrderType()); - } - - if (StringUtils.isNotBlank(query.getOrderDate())) { - qw.eq("orderDate", query.getOrderDate()); - } - - if (StringUtils.isNotBlank(query.getPurchaseRequisitionSid())) { - qw.eq("purchaseRequisitionSid", query.getPurchaseRequisitionSid()); - } - - if (StringUtils.isNotBlank(query.getPurchaseApplyMediumModelSid())) { - qw.eq("purchaseApplyMediumModelSid", query.getPurchaseApplyMediumModelSid()); - } - - if (StringUtils.isNotBlank(query.getPlatformNo())) { - qw.eq("platformNo", query.getPlatformNo()); - } - - if (StringUtils.isNotBlank(query.getChassisPriceComposition())) { - qw.eq("chassisPriceComposition", query.getChassisPriceComposition()); - } - - if (StringUtils.isNotBlank(query.getChassisSettlementPrice())) { - qw.eq("chassisSettlementPrice", query.getChassisSettlementPrice()); + qw.like("bvo.orderType", query.getOrderType()); } - if (StringUtils.isNotBlank(query.getCoatPrice())) { - qw.eq("coatPrice", query.getCoatPrice()); - } - - if (StringUtils.isNotBlank(query.getRevisedPriceDifference())) { - qw.eq("revisedPriceDifference", query.getRevisedPriceDifference()); - } - - if (StringUtils.isNotBlank(query.getTreasuryPrice())) { - qw.eq("treasuryPrice", query.getTreasuryPrice()); - } - - if (StringUtils.isNotBlank(query.getFreight())) { - qw.eq("freight", query.getFreight()); - } - - if (StringUtils.isNotBlank(query.getSalesGuidePrice())) { - qw.eq("salesGuidePrice", query.getSalesGuidePrice()); - } - - if (StringUtils.isNotBlank(query.getReceivedInvoiceDate())) { - qw.eq("receivedInvoiceDate", query.getReceivedInvoiceDate()); - } - - if (StringUtils.isNotBlank(query.getInvoiceAmount())) { - qw.eq("invoiceAmount", query.getInvoiceAmount()); + if (StringUtils.isNotBlank(query.getOrderStatus())) { + qw.like("bvo.orderStatus", query.getOrderStatus()); } - if (StringUtils.isNotBlank(query.getExpectLaunchDate())) { - qw.eq("expectLaunchDate", query.getExpectLaunchDate()); + if (StringUtils.isNotBlank(query.getModelName())) { + qw.like("bvm.modelName", query.getModelName()); } - if (StringUtils.isNotBlank(query.getLaunchDate())) { - qw.eq("launchDate", query.getLaunchDate()); + if (StringUtils.isNotBlank(query.getStartDate())) { + qw.gt("bva.applicationDate", query.getStartDate()); } - if (StringUtils.isNotBlank(query.getOfflineDate())) { - qw.eq("offlineDate", query.getOfflineDate()); - } - - if (StringUtils.isNotBlank(query.getOrderStatus())) { - qw.eq("orderStatus", query.getOrderStatus()); + if (StringUtils.isNotBlank(query.getEndDate())) { + qw.lt("bva.applicationDate", query.getEndDate()); } return qw; } - public PagerVo listPageVo(PagerQuery pq) { + public PagerVo listPageVo(PagerQuery pq) { BusVehicleOrderQuery query = pq.getParams(); QueryWrapper qw = createQueryWrapper(query); IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } @@ -196,10 +142,33 @@ public class BusVehicleOrderService extends MybatisBaseService Date: Sat, 2 Apr 2022 16:39:06 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=87=B3=20'=E5=B7=A5=E4=BD=9C=E8=AE=A1=E5=88=92'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 安瑞信息化平台工作内容 --- .../安瑞信息化平台工作内容.xlsx | Bin 0 -> 53837 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 工作计划/安瑞信息化平台工作内容.xlsx diff --git a/工作计划/安瑞信息化平台工作内容.xlsx b/工作计划/安瑞信息化平台工作内容.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1d9d6b292f4f49162e0dfd288171a1b7aecafc9a GIT binary patch literal 53837 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 sP>sPL|=WEKR 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 literal 0 HcmV?d00001 From bbaa6f94bebe83b1d73dc752a47b1529c2ab59ef Mon Sep 17 00:00:00 2001 From: alllenliufor3 <1009545232@qq.com> Date: Sat, 2 Apr 2022 17:54:27 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E5=85=A5=E8=B4=A6=E5=8D=95=E7=9A=84=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/scmapplyinbound/ScmApplyInbound.java | 57 +++++++ .../scmapplyinbound/ScmApplyInboundDto.java | 80 +++++++++ .../scmapplyinbound/ScmApplyInboundFeign.java | 50 ++++++ .../ScmApplyInboundFeignFallback.java | 48 ++++++ .../ScmApplyInboundListVo.java | 38 +++++ .../scmapplyinbound/ScmApplyInboundQuery.java | 32 ++++ .../scmapplyinbound/ScmApplyInboundVo.java | 68 ++++++++ .../ScmApplyInboundVehicle.java | 36 ++++ .../ScmApplyInboundVehicleDto.java | 43 +++++ .../ScmApplyInboundVehicleFeign.java | 37 +++++ .../ScmApplyInboundVehicleFeignFallback.java | 31 ++++ .../ScmApplyInboundVehicleQuery.java | 33 ++++ .../ScmApplyInboundVehicleVo.java | 38 +++++ .../ScmApplyInboundMapper.java | 41 +++++ .../scmapplyinbound/ScmApplyInboundMapper.xml | 17 ++ .../scmapplyinbound/ScmApplyInboundRest.java | 58 +++++++ .../ScmApplyInboundService.java | 154 ++++++++++++++++++ .../ScmApplyInboundVehicleMapper.java | 39 +++++ .../ScmApplyInboundVehicleMapper.xml | 20 +++ .../ScmApplyInboundVehicleRest.java | 46 ++++++ .../ScmApplyInboundVehicleService.java | 118 ++++++++++++++ 21 files changed, 1084 insertions(+) create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInbound.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundDto.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundListVo.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundQuery.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundVo.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicle.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleDto.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleFeign.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleFeignFallback.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleQuery.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleVo.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundMapper.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundMapper.xml create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.xml create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleRest.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleService.java diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInbound.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInbound.java new file mode 100644 index 0000000000..498dce8670 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInbound.java @@ -0,0 +1,57 @@ +package com.yxt.anrui.scm.api.scmapplyinbound; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInbound.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInbound
+ * Description: 车辆入账单.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "车辆入账单", description = "车辆入账单") +@TableName("scm_apply_inbound") +@Data +public class ScmApplyInbound extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请编号") + private String applicationCode; + + @ApiModelProperty("申请人sid") + private String applicationSid; + + @ApiModelProperty("申请人名称") + private String applicationName; + + @ApiModelProperty("申请日期") + private String applicationDate; + + @ApiModelProperty("采购订单sid") + private String vehicleOrderSid; + + @ApiModelProperty("采购订单编号") + private String purchaseOrderNo; + + @ApiModelProperty("车型sid ") + private String modelSid; + + @ApiModelProperty("车型名称 ") + private String modelName; + + @ApiModelProperty("常用配置 ") + private String configName; + + @ApiModelProperty("厂家发车日期") + private String departureDate; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundDto.java new file mode 100644 index 0000000000..cd321ffdda --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundDto.java @@ -0,0 +1,80 @@ +package com.yxt.anrui.scm.api.scmapplyinbound; + + +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleDto; +import com.yxt.common.core.dto.Dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundDto.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInboundDto
+ * Description: 车辆入账单 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "车辆入账单 数据传输对象", description = "车辆入账单 数据传输对象") +@Data +public class ScmApplyInboundDto implements Dto { + + @ApiModelProperty("车辆入账单sid") + private String sid; + + @ApiModelProperty("申请编号") + @NotBlank(message = "申请编号不能为空") + private String applicationCode; + + @ApiModelProperty("申请人sid") + @NotBlank(message = "申请人不能为空") + private String applicationSid; + + @ApiModelProperty("申请人名称") + @NotBlank(message = "申请人不能为空") + private String applicationName; + + @ApiModelProperty("申请日期") + @Pattern(regexp = "^(\\s*)|([1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]))$", message = "申请日期日期格式不正确") + private String applicationDate; + + @ApiModelProperty("采购订单sid") + @NotBlank(message = "采购订单不能为空") + private String vehicleOrderSid; + + @ApiModelProperty("采购订单编号") + @NotBlank(message = "采购订单编号不能为空") + private String purchaseOrderNo; + + @ApiModelProperty("车型sid ") + @NotBlank(message = "车型不能为空") + private String modelSid; + + @ApiModelProperty("车型名称 ") + @NotBlank(message = "车型名称不能为空") + private String modelName; + + @ApiModelProperty("常用配置 ") + @NotBlank(message = "常用配置不能为空") + private String configName; + + @ApiModelProperty("厂家发车日期") + private String departureDate; + + @ApiModelProperty("备注") + private String remarks; + + @ApiModelProperty("车辆列表") + private List vehicleList; +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java new file mode 100644 index 0000000000..dbbee9ce5d --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java @@ -0,0 +1,50 @@ +package com.yxt.anrui.scm.api.scmapplyinbound; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundFeign.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInboundFeign
+ * Description: 车辆入账单.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "车辆入账单") +@FeignClient( + contextId = "anrui-scm-ScmApplyInbound", + name = "anrui-scm", + path = "v1/scmapplyinbound", + fallback = ScmApplyInboundFeignFallback.class) +public interface ScmApplyInboundFeign { + + @ApiOperation("根据条件分页查询车辆入账单的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq); + + @ApiOperation("根据条件查询所有数据列表") + @PostMapping("/listAll") + public ResultBean> listAll(@RequestBody ScmApplyInboundQuery query); + + @ApiOperation("新增和修改车辆入账单") + @PostMapping("/saveOrUpdateApplyInBound") + public ResultBean saveOrUpdateApplyInBound(@RequestBody @Valid ScmApplyInboundDto dto); + + @ApiOperation("根据sid查询车辆入账单详情") + @GetMapping("/fetchSid/{sid}") + public ResultBean fetchSid(@PathVariable("sid") String sid); +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java new file mode 100644 index 0000000000..c4199dd09b --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java @@ -0,0 +1,48 @@ +package com.yxt.anrui.scm.api.scmapplyinbound; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundFeignFallback.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInboundFeignFallback
+ * Description: 车辆入账单.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Component +public class ScmApplyInboundFeignFallback implements ScmApplyInboundFeign { + + @Override + public ResultBean listPage(PagerQuery pq){ + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui-scm/scmapplyinbound/listPage无法访问"); + } + + @Override + public ResultBean> listAll(ScmApplyInboundQuery query){ + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui-scm/scmapplyinbound/listAll无法访问"); + } + + @Override + public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto){ + return ResultBean.fireFail().setMsg("接口anrui-scm/scmapplyinbound/save无法访问"); + } + + @Override + public ResultBean fetchSid(String sid) { + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui-scm/scmapplyinbound/fetchSid无法访问"); + } +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundListVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundListVo.java new file mode 100644 index 0000000000..070d2540bc --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundListVo.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.scm.api.scmapplyinbound; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/02 + */ +@ApiModel("入账申请列表") +@Data +public class ScmApplyInboundListVo implements Vo { + + @ApiModelProperty("车辆入账单sid") + private String sid; + + @ApiModelProperty("申请编号") + private String applicationCode; + + @ApiModelProperty("申请日期") + private String applicationDate; + + @ApiModelProperty("采购订单编号") + private String purchaseOrderNo; + + @ApiModelProperty("车型名称 ") + private String modelName; + + @ApiModelProperty("台数 ") + private String vehicleNum; + + @ApiModelProperty("状态 ") + private String nodeState; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundQuery.java new file mode 100644 index 0000000000..4881acb262 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundQuery.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.scm.api.scmapplyinbound; + + +import com.yxt.common.core.query.Query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundQuery.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInboundQuery
+ * Description: 车辆入账单 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "车辆入账单 查询条件", description = "车辆入账单 查询条件") +@Data +public class ScmApplyInboundQuery implements Query { + + @ApiModelProperty("采购订单编号") + private String purchaseOrderNo; + + @ApiModelProperty("车型") + private String modelName; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundVo.java new file mode 100644 index 0000000000..37a6ebe97e --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundVo.java @@ -0,0 +1,68 @@ +package com.yxt.anrui.scm.api.scmapplyinbound; + + +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleVo; +import com.yxt.common.core.vo.Vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVo.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInboundVo
+ * Description: 车辆入账单 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "车辆入账单 视图数据对象", description = "车辆入账单 视图数据对象") +@Data +public class ScmApplyInboundVo implements Vo { + + @ApiModelProperty("车辆入账单sid") + private String sid; + + @ApiModelProperty("申请编号") + private String applicationCode; + + @ApiModelProperty("申请人sid") + private String applicationSid; + + @ApiModelProperty("申请人名称") + private String applicationName; + + @ApiModelProperty("申请日期") + private String applicationDate; + + @ApiModelProperty("采购订单sid") + private String vehicleOrderSid; + + @ApiModelProperty("采购订单编号") + private String purchaseOrderNo; + + @ApiModelProperty("车型sid ") + private String modelSid; + + @ApiModelProperty("车型名称 ") + private String modelName; + + @ApiModelProperty("常用配置 ") + private String configName; + + @ApiModelProperty("厂家发车日期") + private String departureDate; + + @ApiModelProperty("备注") + private String remarks; + + @ApiModelProperty("车辆列表") + private List inboundVehicleList; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicle.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicle.java new file mode 100644 index 0000000000..6b66c7c0a2 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicle.java @@ -0,0 +1,36 @@ +package com.yxt.anrui.scm.api.scmapplyinboundvehicle; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicle.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicle
+ * Description: 入库车辆信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "入库车辆信息", description = "入库车辆信息") +@TableName("scm_apply_inbound_vehicle") +@Data +public class ScmApplyInboundVehicle extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("车辆入库单sid") + private String applySid; + + @ApiModelProperty("车型sid") + private String modelSid; + + @ApiModelProperty("车架号(VIN)") + private String vinNo; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleDto.java new file mode 100644 index 0000000000..2990c9cbd4 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleDto.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.scm.api.scmapplyinboundvehicle; + + +import com.yxt.common.core.dto.Dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicleDto.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleDto
+ * Description: 入库车辆信息 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "入库车辆信息 数据传输对象", description = "入库车辆信息 数据传输对象") +@Data +public class ScmApplyInboundVehicleDto implements Dto { + + @ApiModelProperty("车辆信息sid") + private String sid; + + @ApiModelProperty("车辆入库单sid") + private String applySid; + + @ApiModelProperty("车型sid") + private String modelSid; + + @ApiModelProperty("车架号(VIN)") + private String vinNo; + + @ApiModelProperty("备注") + private String remarks; +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleFeign.java new file mode 100644 index 0000000000..161f65c478 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleFeign.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.scm.api.scmapplyinboundvehicle; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicleFeign.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleFeign
+ * Description: 入库车辆信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "入库车辆信息") +@FeignClient( + contextId = "anrui-scm-ScmApplyInboundVehicle", + name = "anrui-scm", + path = "v1/scmapplyinboundvehicle", + fallback = ScmApplyInboundVehicleFeignFallback.class) +public interface ScmApplyInboundVehicleFeign { + + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq); +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleFeignFallback.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleFeignFallback.java new file mode 100644 index 0000000000..0a29cf08de --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleFeignFallback.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.scm.api.scmapplyinboundvehicle; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicleFeignFallback.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleFeignFallback
+ * Description: 入库车辆信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Component +public class ScmApplyInboundVehicleFeignFallback implements ScmApplyInboundVehicleFeign { + + @Override + public ResultBean> listPage(PagerQuery pq){ + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui-scm/scmapplyinboundvehicle/listPage无法访问"); + } +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleQuery.java new file mode 100644 index 0000000000..37f5503593 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleQuery.java @@ -0,0 +1,33 @@ +package com.yxt.anrui.scm.api.scmapplyinboundvehicle; + + +import com.yxt.common.core.query.Query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicleQuery.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleQuery
+ * Description: 入库车辆信息 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "入库车辆信息 查询条件", description = "入库车辆信息 查询条件") +@Data +public class ScmApplyInboundVehicleQuery implements Query { + + + @ApiModelProperty("车型sid") + private String modelSid; + + @ApiModelProperty("车架号(VIN)") + private String vinNo; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleVo.java new file mode 100644 index 0000000000..abbf2a76f9 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinboundvehicle/ScmApplyInboundVehicleVo.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.scm.api.scmapplyinboundvehicle; + + +import com.yxt.common.core.vo.Vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicleVo.java
+ * Class: com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleVo
+ * Description: 入库车辆信息 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "入库车辆信息 视图数据对象", description = "入库车辆信息 视图数据对象") +@Data +public class ScmApplyInboundVehicleVo implements Vo { + + @ApiModelProperty("车辆信息sid") + private String sid; + + @ApiModelProperty("车辆入库单sid") + private String applySid; + + @ApiModelProperty("车型sid") + private String modelSid; + + @ApiModelProperty("车架号(VIN)") + private String vinNo; +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundMapper.java new file mode 100644 index 0000000000..3cb96fcd0c --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundMapper.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.scm.biz.scmapplyinbound; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInboundListVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInbound; +import com.yxt.anrui.scm.api.scmapplyinbound.ScmApplyInboundVo; + +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundMapper.java
+ * Class: com.yxt.anrui.scm.biz.scmapplyinbound.ScmApplyInboundMapper
+ * Description: 车辆入账单.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Mapper +public interface ScmApplyInboundMapper extends BaseMapper { + + //@Update("update scm_apply_inbound set name=#{msg} where id=#{id}") + //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + + List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); + + @Select("select * from scm_apply_inbound") + List selectListVo(); +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundMapper.xml new file mode 100644 index 0000000000..fdb4f1dc7d --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java new file mode 100644 index 0000000000..50d309d412 --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java @@ -0,0 +1,58 @@ +package com.yxt.anrui.scm.biz.scmapplyinbound; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.scm.api.scmapplyinbound.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundFeignFallback.java
+ * Class: com.yxt.anrui.scm.biz.scmapplyinbound.ScmApplyInboundRest
+ * Description: 车辆入账单.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "车辆入账单") +@RestController +@RequestMapping("v1/scmapplyinbound") +public class ScmApplyInboundRest implements ScmApplyInboundFeign { + + @Autowired + private ScmApplyInboundService scmApplyInboundService; + + @Override + public ResultBean> listPage(@RequestBody PagerQuery pq){ + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = scmApplyInboundService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean> listAll(@RequestBody ScmApplyInboundQuery query){ + ResultBean rb = ResultBean.fireFail(); + List list = scmApplyInboundService.listAllVo(query); + return rb.success().setData(list); + } + + @Override + public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto){ + return scmApplyInboundService.saveOrUpdateApplyInBound(dto); + } + + @Override + public ResultBean fetchSid(String sid) { + return new ResultBean().setData(scmApplyInboundService.selectBySid(sid)); + } +} 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 new file mode 100644 index 0000000000..d2414df03e --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java @@ -0,0 +1,154 @@ +package com.yxt.anrui.scm.biz.scmapplyinbound; + +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.scm.api.scmapplyinbound.*; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicle; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleDto; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleVo; +import com.yxt.anrui.scm.biz.scmapplyinboundvehicle.ScmApplyInboundVehicleService; +import org.apache.commons.lang3.StringUtils; +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.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.UUID; +import java.util.stream.Collectors; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundService.java
+ * Class: com.yxt.anrui.scm.biz.scmapplyinbound.ScmApplyInboundService
+ * Description: 车辆入账单 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 11:54:35
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class ScmApplyInboundService extends MybatisBaseService { + + @Autowired + private ScmApplyInboundVehicleService scmApplyInboundVehicleService; + + public PagerVo listPage(PagerQuery pq) { + ScmApplyInboundQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + public List listAll(ScmApplyInboundQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectList(qw); + } + private QueryWrapper createQueryWrapper(ScmApplyInboundQuery query) { + // todo: 这里根据具体业务调整查询条件 + // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); + QueryWrapper qw = new QueryWrapper<>(); + + if (StringUtils.isNotBlank(query.getPurchaseOrderNo())) { + qw.like("purchaseOrderNo", query.getPurchaseOrderNo()); + } + + if (StringUtils.isNotBlank(query.getModelName())) { + qw.like("modelName", query.getModelName()); + } + return qw; + } + + public PagerVo listPageVo(PagerQuery pq) { + ScmApplyInboundQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List listAllVo(ScmApplyInboundQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectListAllVo(qw); + } + + public List listVo() { + return baseMapper.selectListVo(); + } + + /** + * 新增和修改车辆入账单 + * @param dto + */ + @Transactional(rollbackFor = Exception.class) + public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto){ + // 验证车架号:不能为空、不能重复 + List vehicleList = dto.getVehicleList(); + List vinNoList = vehicleList.stream().filter(vehicle -> StringUtils.isNotBlank(vehicle.getVinNo())).map(vehicle -> vehicle.getVinNo()).collect(Collectors.toList()); + if (vehicleList.size() != vinNoList.size()) { + return new ResultBean().fail().setMsg("车架号不能为空"); + } + // 去重 + long disCount = vinNoList.stream().distinct().count(); + if (vinNoList.size() != disCount) { + return new ResultBean().fail().setMsg("车架号不能重复"); + } + + if (StringUtils.isBlank(dto.getSid())) { // 新增 + // 验证数据库是否重复 + for (int i = 0; i < vinNoList.size(); i++) { + int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), ""); + if (count != 0) { + return new ResultBean().setMsg("车架号已经存在"); + } + } + ScmApplyInbound inboundVehicle = new ScmApplyInbound(); + BeanUtil.copyProperties(dto, inboundVehicle); + inboundVehicle.setSid(UUID.randomUUID().toString()); + save(inboundVehicle); + // 保存车辆列表 + scmApplyInboundVehicleService.saveApplyInboundVehicleList(vehicleList, inboundVehicle.getSid(), inboundVehicle.getModelSid()); + return new ResultBean().success().setMsg("保存成功"); + } else { // 修改 + // 采购订单下线日期一旦维护,二次确认,则不能修改 TODO + // 验证数据库是否重复 + for (int i = 0; i < vinNoList.size(); i++) { + int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), dto.getSid()); + if (count != 0) { + return new ResultBean().setMsg("车架号已经存在"); + } + } + ScmApplyInbound scmApplyInbound = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, scmApplyInbound); + updateById(scmApplyInbound); + // 更新车辆列表信息 + scmApplyInboundVehicleService.updateApplyInboundVehicleList(vehicleList); + return new ResultBean().success().setMsg("修改成功"); + } + } + + /** + * 根据sid查询车辆入账单详情 + * @param sid + * @return + */ + public ScmApplyInboundVo selectBySid(String sid) { + ScmApplyInboundVo vo = new ScmApplyInboundVo(); + ScmApplyInbound scmApplyInbound = fetchBySid(sid); + BeanUtil.copyProperties(scmApplyInbound, vo); + List list = scmApplyInboundVehicleService.selectListByAppSid(sid); + vo.setInboundVehicleList(list); + return vo; + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000..cb9922dcd3 --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.java @@ -0,0 +1,39 @@ +package com.yxt.anrui.scm.biz.scmapplyinboundvehicle; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicle; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleVo; + +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicleMapper.java
+ * Class: com.yxt.anrui.scm.biz.scmapplyinboundvehicle.ScmApplyInboundVehicleMapper
+ * Description: 入库车辆信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Mapper +public interface ScmApplyInboundVehicleMapper extends BaseMapper { + + //@Update("update scm_apply_inbound_vehicle set name=#{msg} where id=#{id}") + //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + + int checkVinNo(@Param("vinNo") String vinNo, @Param("applySid") String applySid); + + List selectListByAppSid(@Param("applySid") String applySid); +} \ No newline at end of file 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 new file mode 100644 index 0000000000..d1a4f45c52 --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleRest.java new file mode 100644 index 0000000000..3d3598cb7c --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleRest.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.scm.biz.scmapplyinboundvehicle; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicle; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleQuery; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleVo; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleDto; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleFeign; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicleFeignFallback.java
+ * Class: com.yxt.anrui.scm.biz.scmapplyinboundvehicle.ScmApplyInboundVehicleRest
+ * Description: 入库车辆信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "入库车辆信息") +@RestController +@RequestMapping("v1/scmapplyinboundvehicle") +public class ScmApplyInboundVehicleRest implements ScmApplyInboundVehicleFeign { + + @Autowired + private ScmApplyInboundVehicleService scmApplyInboundVehicleService; + + @Override + public ResultBean> listPage(@RequestBody PagerQuery pq){ + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = scmApplyInboundVehicleService.listPageVo(pq); + return rb.success().setData(pv); + } +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleService.java new file mode 100644 index 0000000000..695f321584 --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleService.java @@ -0,0 +1,118 @@ +package com.yxt.anrui.scm.biz.scmapplyinboundvehicle; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.lang3.StringUtils; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicle; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleQuery; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleVo; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleDto; +import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleFeign; + +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Project: anrui-scm(进销存)
+ * File: ScmApplyInboundVehicleService.java
+ * Class: com.yxt.anrui.scm.biz.scmapplyinboundvehicle.ScmApplyInboundVehicleService
+ * Description: 入库车辆信息 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022-04-02 12:00:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class ScmApplyInboundVehicleService extends MybatisBaseService { + public PagerVo listPage(PagerQuery pq) { + ScmApplyInboundVehicleQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + public List listAll(ScmApplyInboundVehicleQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectList(qw); + } + private QueryWrapper createQueryWrapper(ScmApplyInboundVehicleQuery query) { + // todo: 这里根据具体业务调整查询条件 + // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); + QueryWrapper qw = new QueryWrapper<>(); + + + if (StringUtils.isNotBlank(query.getModelSid())) { + qw.eq("modelSid", query.getModelSid()); + } + + if (StringUtils.isNotBlank(query.getVinNo())) { + qw.eq("vinNo", query.getVinNo()); + } + return qw; + } + + public PagerVo listPageVo(PagerQuery pq) { + ScmApplyInboundVehicleQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + /** + * 验证车架号是否重复 + * @return + */ + public int checkVinNo(String vinNo, String applySid) { + return baseMapper.checkVinNo(vinNo, applySid); + } + + /** + * 保存车辆列表 + * @param list + * @param applySid + * @param modelSid + */ + public void saveApplyInboundVehicleList(List list, String applySid, String modelSid) { + for (ScmApplyInboundVehicleDto dto : list) { + ScmApplyInboundVehicle inboundVehicle = new ScmApplyInboundVehicle(); + BeanUtil.copyProperties(dto, inboundVehicle); + inboundVehicle.setApplySid(applySid); + inboundVehicle.setModelSid(modelSid); + save(inboundVehicle); + } + } + + /** + * 修改车辆列表 + * @param list + */ + public void updateApplyInboundVehicleList(List list) { + for (ScmApplyInboundVehicleDto dto : list) { + ScmApplyInboundVehicle inboundVehicle = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, inboundVehicle); + updateById(inboundVehicle); + } + } + + /** + * 根据车辆入账单查询车辆信息 + * @param applySid + * @return + */ + public List selectListByAppSid(String applySid) { + return baseMapper.selectListByAppSid(applySid); + } +} \ No newline at end of file