From 126a82651381c5aaf4c9063107a017235c98e58c Mon Sep 17 00:00:00 2001 From: hjx <577364224@qq.com> Date: Wed, 28 Jan 2026 17:58:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=8D=95=E4=B8=8B=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/WlhyServiceFeign.java | 8 + .../factory/RemoteWlhyFallbackFactory.java | 5 + .../domain/dto/wlhy/TmsAddressMultiDTO.java | 49 ++ .../core/domain/dto/wlhy/TmsCargoInfoDTO.java | 82 +++ .../core/domain/dto/wlhy/TmsOrderAddDTO.java | 476 ++++++++++++++++++ ...sinessDocumentOrderApplicationService.java | 7 +- .../entity/BusinessDocumentOrder.java | 2 +- .../facade/IBusinessDocumentOrderService.java | 4 +- .../BusinessDocumentOrderImpl.java | 73 ++- .../BusinessDocumentOrderDomainService.java | 7 +- .../executeOrder/entity/ExecuteOrder.java | 5 +- .../persistence/ExecuteOrderImpl.java | 87 +++- .../BusinessDocumentOrderApi.java | 13 +- sql/oms.sql | 0 14 files changed, 791 insertions(+), 27 deletions(-) create mode 100644 mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsAddressMultiDTO.java create mode 100644 mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsCargoInfoDTO.java create mode 100644 mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAddDTO.java create mode 100644 sql/oms.sql diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index c11478ccc..64df993ed 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -518,4 +518,12 @@ public interface WlhyServiceFeign { @GetMapping(value = "/ntocc/tmsSettlementExchangeRate/queryById") public Result queryById(@RequestParam(name="id",required=true) String id); + + /** + * 数字物流同步网货订单 + * @param tmsOrderAddDTO + * @return + */ + @PostMapping("/feign/order/add") + public AjaxResult add(@RequestBody TmsOrderAddDTO tmsOrderAddDTO); } diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java index eea807c53..c330a5bbc 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java @@ -523,6 +523,11 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory queryById(String id) { return null; } + + @Override + public AjaxResult add(TmsOrderAddDTO tmsOrderAddDTO) { + return AjaxResult.error(cause.getMessage()); + } }; } } diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsAddressMultiDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsAddressMultiDTO.java new file mode 100644 index 000000000..80f4fc984 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsAddressMultiDTO.java @@ -0,0 +1,49 @@ +package com.mhd.common.core.domain.dto.wlhy; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * TODO 多装多卸地址DTO + * + * @author LianZhijian + * @version 1.0 + * @date 2022-12-16 14:23:22 + */ +@Data +public class TmsAddressMultiDTO { + + @ApiModelProperty(value = "装卸货地县区编码") + private String areaCode; + @ApiModelProperty(value = "装卸货地名称") + private String areaName; + @ApiModelProperty(value = "装卸货详细地址") + private String address; + @ApiModelProperty(value = "装卸货地经度") + private String longitude; + @ApiModelProperty(value = "装货地纬度") + private String latitude; + @ApiModelProperty(value = "装卸货联系人") + private String contactName; + @ApiModelProperty(value = "装卸货联系人电话") + private String contactPhone; + @ApiModelProperty(value = "装卸货日期(年月日)") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date layDate; + @ApiModelProperty(value = "装卸货时间(上午、下午、24小时)") + private String layTime; + @ApiModelProperty(value = "装卸货时间id") + private String layTimeId; + @ApiModelProperty(value = "装卸货类型:0无状态1装货地址2卸货地址") + private Integer layType; + @ApiModelProperty(value = "序号") + private Integer sort; + @ApiModelProperty(value = "简称") + private String shortName; + +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsCargoInfoDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsCargoInfoDTO.java new file mode 100644 index 000000000..760c31697 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsCargoInfoDTO.java @@ -0,0 +1,82 @@ +package com.mhd.common.core.domain.dto.wlhy; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + + +/** + * @Description: 货源表 + * @Author: lfs + * @Date: 2020-02-14 09:49:27 + * @Version: V1.0 + */ +@Data +public class TmsCargoInfoDTO implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "货单号") + private String orderId; + @ApiModelProperty(value = "物料ID 库存ID 货物类型ID") + private String goodsTypeId; + @ApiModelProperty(value = "货物类型") + private String goodsType; + @ApiModelProperty(value = "货物名称ID") + private String goodsNameId; + @ApiModelProperty(value = "货物名称") + private String goodsName; + @ApiModelProperty(value = "货物数量") + private BigDecimal cargoNum; + @ApiModelProperty(value = "货物重量") + private BigDecimal cargoWeight; + private BigDecimal weight; + @ApiModelProperty(value = "重量单位ID") + private String weightUnitId; + @ApiModelProperty(value = "重量单位名称") + private String weightUnit; + + + @ApiModelProperty(value = "数量单位ID") + private String quantityUnitId; + @ApiModelProperty(value = "数量单位名称") + private String quantityUnit; + + @ApiModelProperty("货物名称") + private String cargoName; + + @ApiModelProperty("货物单位ID") + private String cargoUnitId; + + @ApiModelProperty("货物单位名字") + private String cargoUnitName; + + @ApiModelProperty("整机表编号") + private String machineCode; + + @ApiModelProperty("") + private String materialCode; + + @ApiModelProperty("体积") + private BigDecimal materialVolume; + + @ApiModelProperty("内容") + private String materialContent; + + @ApiModelProperty("是否为库存") + private boolean stockFlag; + + @ApiModelProperty("货物重量 罐车运输专有字段") + private BigDecimal cargoTonnage; + + @ApiModelProperty("价格") + private BigDecimal unitPrice; + + @ApiModelProperty("货物类型标识:STOCK-库存,MATERIAL-物料,MANUAL-手动输入") + private String cargoType; + + @ApiModelProperty("货物备注") + private String remark; +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAddDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAddDTO.java new file mode 100644 index 000000000..2eb4f9834 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAddDTO.java @@ -0,0 +1,476 @@ +package com.mhd.common.core.domain.dto.wlhy; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.mhd.common.core.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * @Description: 货源表 + * @Author: lfs + * @Date: 2020-02-14 09:49:27 + * @Version: V1.0 + */ +@Data +public class + +TmsOrderAddDTO implements Serializable { + private static final long serialVersionUID = 1L; + @TableId(type = IdType.ID_WORKER_STR) + private String id; +// @ApiModelProperty(value = "线路名称ID") +// private java.lang.String lineNameId=""; +// @ApiModelProperty(value = "线路名称") +// private java.lang.String lineName=""; +// +// @ApiModelProperty(value = "运距(千米)") +// private BigDecimal haulDistance; + @ApiModelProperty(value = "装货地县区编码",required = true) + private String loadingAreaId=""; + @ApiModelProperty(value = "装货地详细地址") + private String loadingAddress=""; + + @ApiModelProperty(value = "发货人姓名") + private String freighterName=""; + @ApiModelProperty(value = "装货电话") + private String loadingPhone=""; + @ApiModelProperty(value = "装货时间日期(年月日)",required = true) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private java.util.Date loadingDate; +// @ApiModelProperty(value = "装货时间(上午、下午、24小时)") +// private String loadingTime=""; + @ApiModelProperty(value = "卸货地县区编码",required = true) + private String unloadAreaId=""; + @ApiModelProperty(value = "卸货地详细地址") + private String unloadAddress=""; + @ApiModelProperty(value = "收货人姓名") + private String dischargerName=""; + @ApiModelProperty(value = "卸货电话") + private String unloadPhone=""; + @ApiModelProperty(value = "卸货时间日期(年月日)",required = true) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private java.util.Date unloadingData; + +// @ApiModelProperty(value = "装货时间id",required = true) +// private String loadingTimeId; +// @ApiModelProperty(value = "卸货时间id",required = true) +// private String unloadingTimeId; +// @ApiModelProperty(value = "卸货时间(上午、下午、24小时)") +// private java.lang.String unloadingTime; + @ApiModelProperty(value = "货物名称ID") + private String goodsNameId; + @ApiModelProperty(value = "货物名称") + private String goodsName; + @ApiModelProperty(value = "货物名称ID",required = true) + private String goodsTypeId; + @ApiModelProperty(value = "货物大类型") + private String goodsType=""; + @ApiModelProperty(value = "重量小(吨)",required = true) + private BigDecimal weightMin; + @ApiModelProperty(value = "重量大(吨)",required = true) + private BigDecimal weightMax; + + @ApiModelProperty(value = "货物数量单位(吨/方/件)id",required = true) + private String goodsUntisId; + @ApiModelProperty(value = "配载方式ID(0-数量,1-车次)",required = true) + private Integer transportationModeId = 1; + @ApiModelProperty(value = "车型车长ID") + private String carType; +// @ApiModelProperty(value = "指定司机ID") +// private String appointDriverId; +// @ApiModelProperty(value = "司机姓名") +// private String appointDriver; +// @ApiModelProperty(value = "司机手机号") +// private String appointDriverPhone; +// @ApiModelProperty(value = "司机车牌号") +// private String appointDriverLicense; + @ApiModelProperty(value = "服务要求ID") + private String serviceRequireId; + @ApiModelProperty(value = "备注") + private String remarks; + + @ApiModelProperty(value = "备注") + private String orderRemark; +// @ApiModelProperty(value = "运单类型(0-企业普货、1-企业批量货、2-撮合货(普通货源)、3-客服运单,4-线下运单)") +// private Integer waybillType ; + @ApiModelProperty(value = "运单类型:0-pc端发货,1-pc端导入,2-货主端app发货") + private Integer waybillFrom = 2 ; +// @ApiModelProperty(value = "期望运费") +// private java.math.BigDecimal freightHope; +// @ApiModelProperty(value = "占用车长") +// private String occupyConductor; + @ApiModelProperty(value = "运单模式(0-普通模式,1-竞价模式)") + private Integer waybillMode = 0; + @ApiModelProperty(value = "竞价截止时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date latestBiddingTime; + @ApiModelProperty(value = "发货运费") + private BigDecimal deliveryFreight; + @ApiModelProperty(value = "运费单价(元/吨)") + private BigDecimal transportationUnitPrice; + @ApiModelProperty(value = "结算方式,1-按趟结算,2-按数量结算") + private Integer radioValue; + @ApiModelProperty(value = "合同物流导入(0-默认,1-合同,2-普通导入)") + private Integer isContract = 0; + +// @ApiModelProperty(value = "是否长期货源:0-否,1-是") +// private Integer isLongOrder=0; + +// @ApiModelProperty(value = "卸货单位") +// private java.lang.String unloadUnit; +// @ApiModelProperty(value = "收货人身份证号") +// private String unloadIdentificationNumber; +// @ApiModelProperty(value = "代运营人员用户ID") +// private String orderAgentUserId; + + @ApiModelProperty(value = "指定货主编号") + private String appointShipperId; + @ApiModelProperty(value = "指定货主") + private String appointShipper; +// @ApiModelProperty(value = "指定平台公司") +// private String appointCompanyId; +// @ApiModelProperty(value = "指定平台公司名称") +// private String appointCompanyName; +// @ApiModelProperty(value = "指定车辆ID") +// private String appointVehicleId; +// @ApiModelProperty(value = "指定车辆设备号") +// private String appointVehicleDevice; + + + /**是否开启路耗(0-否 1-是)*/ +// @ApiModelProperty(value = "是否开启路耗(0-否 1-是)") +// @Excel(name = "是否开启路耗(0-否 1-是)", width = 15) +// private Integer isRoadLoss=0; + /**货物价值(元/吨)*/ +// @ApiModelProperty(value = "货物价值(元/吨)") +// @Excel(name = "货物价值(元/吨)", width = 15) +// private BigDecimal goodsValue=BigDecimal.ZERO; + /**路耗模式( 0-按比例% 1-按数量(吨))*/ +// @ApiModelProperty(value = "路耗模式( 0-按比例% 1-按数量(吨))") +// @Excel(name = "路耗模式( 0-按比例% 1-按数量(吨))", width = 15) +// private Integer roadLossMode; +// /**路耗结算方式( 1-取装货重量 2-取卸货重量 3-装卸货取大 4-装卸货取小)*/ +// @ApiModelProperty(value = "路耗结算方式(0-无 1-取装货重量 2-取卸货重量 3-装卸货取大 4-装卸货取小)") +// @Excel(name = "路耗结算方式( 1-取装货重量 2-取卸货重量 3-装卸货取大 4-装卸货取小)", width = 15) +// private Integer roadLossSettlementMethod; + /**允许货物亏损*/ +// @ApiModelProperty(value = "允许货物亏损(吨或%)") +// @Excel(name = "允许货物亏损(吨或%)", width = 15) +// private BigDecimal allowableLoss=BigDecimal.ZERO; + + /**超出亏损扣除金额(元/吨)*/ +// @ApiModelProperty(value = "超出亏损扣除金额(元/吨)") +// @Excel(name = "超出亏损扣除金额(元/吨)", width = 15) +// private BigDecimal lossDeductionAmount=BigDecimal.ZERO; + +// @ApiModelProperty(value = "上游客户id") +// @Excel(name = "上游客户id", width = 15) +// private String upClientId; + +// @ApiModelProperty(value = "运费抹零 0-不抹零 ,1-抹零小数位,2-抹零个位,3-抹零十位") +// private Integer isFreightNullification ; + + @ApiModelProperty(value = "加油宝计算模式 0-按比例 1-按数值") + private Integer oilValue ; + +// @ApiModelProperty(value = "是否允许接多单:0否 1是") +// private Integer isMultipleOrdersAllowed; + + @ApiModelProperty(value = "发货备注") + private String shippingNote; + +// @ApiModelProperty(value = "涨吨是否计算费用 0-否 1-是 ") +// private Integer isTonnageIncreaseCharge; + @ApiModelProperty(value = "装货地经度") + private String loadingLongitude; + @ApiModelProperty(value = "装货地纬度") + private String loadingLatitude; + + @ApiModelProperty(value = "卸货地经度") + private String unloadLongitude; + @ApiModelProperty(value = "卸货地纬度") + private String unloadLatitude; + + @ApiModelProperty(value = "预设竞标价") + @Excel(name = "预设竞标价", width = 15) + private BigDecimal highestPrice; + + @ApiModelProperty(value = "预设竞标价") + private BigDecimal presetPrice; + + @ApiModelProperty(value = "竞价单位(元/车,元/吨)") + private String biddingUnit; + + @ApiModelProperty(value = "竞价最高可输入价格") + @Excel(name = "竞价最高可输入价格", width = 15) + private BigDecimal maximumBidPrice; + + @ApiModelProperty(value = "评标类型(0-自动评标,1-手动评标)") + private Integer bidEvaluationType = 1; + + @ApiModelProperty("应收结算类型:1-月结,2-现结") + private Integer receivableType; + + @ApiModelProperty(value = "货物数量") + private String goodsQuantity; + @ApiModelProperty(value = "货物数量单位code") + private String goodsQuantityUnitId; + @ApiModelProperty(value = "货物数量单位") + private String goodsQuantityUnit; + +// @ApiModelProperty("项目表ID") +// private Long projectManagementId; + +// @ApiModelProperty(value = "服务费率") +// private BigDecimal serviceRate; + + @ApiModelProperty("是否自动生成协议 0-否 1-是") + @Excel(name = "是否自动生成协议 0-否 1-是") + private Integer isAutoGenerateProtocol; + +// @ApiModelProperty(value = "单车总费用") +// @Excel(name = "单车总费用", width = 15) +// private BigDecimal freightGross = BigDecimal.ZERO; + +// @ApiModelProperty(value = "协议费用:回单付金额") +// @Excel(name = "协议费用:回单付金额", width = 15) +// private BigDecimal receiptPaymentAmount = BigDecimal.ZERO; +// +// @ApiModelProperty(value = "协议费用:预付现金金额") +// @Excel(name = "协议费用:预付现金金额", width = 15) +// private BigDecimal cashAdvance = BigDecimal.ZERO; +// +// @ApiModelProperty(value = "协议费用:到付运费金额") +// @Excel(name = "协议费用:到付运费金额", width = 15) +// private BigDecimal freightAmount = BigDecimal.ZERO; +// +// @ApiModelProperty(value = "协议费用:预付平台油卡金额") +// @Excel(name = "协议费用:预付平台油卡金额", width = 15) +// private BigDecimal oilCardOnline = BigDecimal.ZERO; + +// @ApiModelProperty(value = "单车重量", required = true) +// private BigDecimal singleVehicleWeight; + + + + //=================批量货派单相关============================= +// @ApiModelProperty(value = "需求车次") +// private Integer demandTrainNumber; +// @ApiModelProperty(value = "承运车次默认0") +// private Integer carriageNumber; +// @ApiModelProperty(value = "剩余需求车次") +// private Integer remainingDemandTrainNumber; + + /**货物重量*/ +// @ApiModelProperty(value = "货物重量") +// private BigDecimal goodsWeight; +// @ApiModelProperty(value = "货源剩余货物数量") +// private BigDecimal residueGoodsWeight; +// @ApiModelProperty(value = "承运货物数量") +// private BigDecimal transportGoodsWeight; + + @ApiModelProperty(value = "货物信息表") + private List cargoInfoList; + @ApiModelProperty(value = "装货地址集合") + private List loadingAddressList; + @ApiModelProperty(value = "卸货地址集合") + private List unloadAddressList; + + + + +// @ApiModelProperty(value = "来源系统") +// private String orderSource; + + //========================================新增字段========================================== + @ApiModelProperty(value = "付款方类型(0-委托方,1-收货方)") + @Excel(name = "付款方类型(0-委托方,1-收货方)", width = 15) + private Integer payerType; + + @ApiModelProperty(value = "收货方编码") + private String recipientId; + @ApiModelProperty(value = "收货方") + private String recipientName; + + @ApiModelProperty(value = "整机编号") + private String machineNumber; + + @ApiModelProperty(value = "是否库存(0-是,1-否)") + @Excel(name = "是否库存(0-是,1-否)", width = 15) + private Integer stockFlag; + + @ApiModelProperty(value = "信息费") + private BigDecimal infoFee; + + @ApiModelProperty(value = "订单类型(1-普货运输,2-危化运输,3-罐车运输,4-济南专线,5-江西专线)") + private Integer orderShippingType; + + @ApiModelProperty(value = "单号") + private String thirdPartyOrderNumber; + + @ApiModelProperty(value = "车辆类型Id") + private String vehicleTypeId; + + @ApiModelProperty(value = "车辆类型名称") + private String vehicleTypeName; + + @ApiModelProperty(value = "承运人Id(订单为济南专线使用)") + private String carrier; + + @ApiModelProperty(value = "承运人姓名(订单为济南专线使用)") + private String carrierName; + + @ApiModelProperty("运费单价") + private BigDecimal freightUnitPrice; + + @ApiModelProperty("数字物流平台用户id") + private Long szwlUserId; + + @ApiModelProperty(value = "信息费收款方") + private String infoFeePayee; + + @ApiModelProperty(value = "信息费收款方方式(0-委托方,1-收货方,2-第三方)") + private Integer infoFeePayeeType; + + @ApiModelProperty("业务员ID") + private String salesmanId; + + @ApiModelProperty("业务员ID") + private String salesmanName; + + @ApiModelProperty("是否报关(0:否,1:是)") + private Integer isDeclare; + + @ApiModelProperty("线路") + private String route; + + @ApiModelProperty("柜类型") + private String containerType; + + @ApiModelProperty("柜类型名称") + private String containerTypeName; + + @ApiModelProperty("卡类型") + private String cardType; + + @ApiModelProperty("卡类型名称") + private String cardTypeName; + + @ApiModelProperty("外来柜号") + private String externalContainerNo; + + @ApiModelProperty("中转地") + private String transitPlace; + + @ApiModelProperty("托运人ID") + private String shipper; + + @ApiModelProperty("托运人ID") + private String customsShipper; + + @ApiModelProperty("托运人电话") + private String customsShipperTel; + + @ApiModelProperty("卸货单位") + private String unloadingCompany; + + @ApiModelProperty("合同编号") + private String contractNo; + + @ApiModelProperty("运费") + private BigDecimal freightFee; + + @ApiModelProperty("卸货费") + private BigDecimal unloadingFee; + + @ApiModelProperty("报关费") + private BigDecimal customsFee; + + @ApiModelProperty("差货费") + private BigDecimal shortageFee; + + @ApiModelProperty("杂费") + private BigDecimal miscellaneousFee; + + @ApiModelProperty("其他费用") + private BigDecimal otherFee; + + @ApiModelProperty("滞车费") + private BigDecimal detentionFee; + + @ApiModelProperty("税率") + private BigDecimal taxRate; + + @ApiModelProperty("结算币种") + private String settlementCurrency; + + @ApiModelProperty("体积") + private BigDecimal volume; + + @ApiModelProperty("内容详情") + private String detailContent; + + @ApiModelProperty("报关线路") + private String customsRoute; + + @ApiModelProperty("报关关口") + private String customsPort; + + @ApiModelProperty("报关联系人") + private String customsContact; + + @ApiModelProperty("报关联系人电话") + private String customsContactPhone; + + @ApiModelProperty("报关备注") + private String customsRemark; + + @ApiModelProperty(value = "组织ID") + private String orgId; + + @ApiModelProperty(value = "所属组织") + @Excel(name = "所属组织", width = 15) + private String orgName; + + @ApiModelProperty(value = "组织ID") + private Long organizationId; + + @ApiModelProperty(value = "组织名称") + private String organizationName; + + @ApiModelProperty(value = "上级组织ID") + private Long topOrganizationId; + + @ApiModelProperty("客户编码nc") + private String customerCodeNc; + + @ApiModelProperty("制单人编码nc") + private String makerCodeNc; + + @ApiModelProperty("业务员编码nc") + private String salesmanCodeNc; + + @ApiModelProperty(value = "单据日期") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date documentDate; + + + + + @ApiModelProperty("执行单id") + private String executeOrderId; + + @ApiModelProperty("执行单号") + private String executeOrderNumber; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java index 4613747bb..070f97a46 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java @@ -70,12 +70,15 @@ public class BusinessDocumentOrderApplicationService { return businessDocumentOrderDomainService.getInfo(id); } - public BusinessDocumentOrderPO audit( Long id, Long reviewStatus) + public Boolean audit( Long[] ids, Long reviewStatus) { - return businessDocumentOrderDomainService.audit(id,reviewStatus); + return businessDocumentOrderDomainService.audit(ids,reviewStatus); } public boolean execute(Long[] ids) { return businessDocumentOrderDomainService.execute(ids); } + public boolean cancelExecute(Long[] ids) { + return businessDocumentOrderDomainService.cancelExecute(ids); + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java index d2c1f844b..62c7353fe 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java @@ -675,7 +675,7 @@ public class BusinessDocumentOrder extends BaseVOEntity{ - @ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发") + @ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发 4-已取消") private Long executeStatus; @ApiModelProperty("执行时间") diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java index f01426821..adff5acb2 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java @@ -37,13 +37,15 @@ public interface IBusinessDocumentOrderService extends IService list=executeOrderMapper.selectList(new QueryWrapper().lambda() + .eq(ExecuteOrder::getBusinessDocumentId,id).eq(ExecuteOrder::getDelFlag,1)); + if(ObjectUtil.isNotNull(list)&&list.size()>0){ + for (ExecuteOrder executeOrder:list){ + if(executeOrder.getIssueStatus()==2){ + throw new ServerException("业务单已生成执行单,请先确认执行单{执行单号}是否可取消"); + }else{ + executeOrder.setOrderStatus(3L); + executeOrder.setIssueStatus(1L); + executeOrderMapper.updateById(executeOrder); + } + } + } + + } + + } + return null; + } + @Override public String selectByMakerCodeNc(String salesmanCodeNc) { String makerCodeNc = businessDocumentOrderMapper.selectByMakerCodeNc(salesmanCodeNc); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java index 71ba23ffe..7067dfef7 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java @@ -647,14 +647,17 @@ public class BusinessDocumentOrderDomainService { return businessDocumentOrderService.getInfo(id); } - public BusinessDocumentOrderPO audit( Long id, Long reviewStatus) + public Boolean audit( Long[] ids, Long reviewStatus) { - return businessDocumentOrderService.audit(id,reviewStatus); + return businessDocumentOrderService.audit(ids,reviewStatus); } public Boolean execute(Long[] ids) { return businessDocumentOrderService.execute(ids); } + public Boolean cancelExecute(Long[] ids) { + return businessDocumentOrderService.cancelExecute(ids); + } /** * 查询编码对应名称 diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java index 5a8825b65..53d4620ac 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java @@ -68,7 +68,7 @@ public class ExecuteOrder extends BaseVOEntity{ @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") private Long topOrganizationId; - @ApiModelProperty( "下发状态 0-无状态 1-未下发 2-已下发") + @ApiModelProperty( "下发状态 0-无状态 1-未下发 2-已下发 ") private Long issueStatus; @ApiModelProperty("下发时间") @@ -82,4 +82,7 @@ public class ExecuteOrder extends BaseVOEntity{ @ApiModelProperty("下发人") private String issueName; + @ApiModelProperty("业务单状态 0-未下发 1-已下发 2-已完成 3-已取消 4-已拦截") + private Long orderStatus; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/persistence/ExecuteOrderImpl.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/persistence/ExecuteOrderImpl.java index 3af302e57..675de3323 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/persistence/ExecuteOrderImpl.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/persistence/ExecuteOrderImpl.java @@ -1,17 +1,35 @@ package com.mhd.oms.domain.executeOrder.repository.persistence; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mhd.common.core.domain.dto.wlhy.TmsAddressMultiDTO; +import com.mhd.common.core.domain.dto.wlhy.TmsCargoInfoDTO; +import com.mhd.common.core.domain.dto.wlhy.TmsOrderAddDTO; +import com.mhd.common.core.domain.entity.TmsOrder; +import com.mhd.common.core.exception.ServiceException; +import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.businessDocumentAddressMulti.entity.BusinessDocumentAddressMulti; +import com.mhd.oms.domain.businessDocumentAddressMulti.repository.mapper.BusinessDocumentAddressMultiMapper; +import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti; +import com.mhd.oms.domain.businessDocumentCargoMulti.repository.mapper.BusinessDocumentCargoMultiMapper; +import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder; +import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper; import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder; import com.mhd.oms.domain.executeOrder.repository.facade.IExecuteOrderService; import com.mhd.oms.domain.executeOrder.repository.mapper.ExecuteOrderMapper; import com.mhd.oms.domain.executeOrder.repository.po.ExecuteOrderPO; import com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO; +import com.mhd.system.api.WlhyServiceFeign; +import com.mhd.system.api.model.LoginUser; +import io.swagger.annotations.ApiModelProperty; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -24,6 +42,16 @@ import java.util.List; public class ExecuteOrderImpl extends ServiceImpl implements IExecuteOrderService{ @Autowired private ExecuteOrderMapper executeOrderMapper; + @Autowired + private BusinessDocumentOrderMapper businessDocumentOrderMapper; + @Autowired + private BusinessDocumentCargoMultiMapper businessDocumentCargoMultiMapper; + + @Autowired + private BusinessDocumentAddressMultiMapper businessDocumentAddressMultiMapper; + + @Autowired + private WlhyServiceFeign wlhyServiceFeign; /** * 查询【请填写功能名称】列表 @@ -71,11 +99,68 @@ public class ExecuteOrderImpl extends ServiceImpl cargoInfoList=new ArrayList(); + List loadingAddressList=new ArrayList(); + List unloadAddressList=new ArrayList(); + BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(executeOrder.getBusinessDocumentId()); + if(ObjectUtil.isNotNull(businessDocumentOrder)){ + BeanUtils.copyProperties(businessDocumentOrder,tmsOrderAddDTO); + tmsOrderAddDTO.setExecuteOrderId(String.valueOf(id)); + tmsOrderAddDTO.setExecuteOrderNumber(executeOrder.getGoodsNumber()); + //货物信息 + List businessDocumentCargoMultiList=businessDocumentCargoMultiMapper.selectList(new QueryWrapper().lambda() + .eq(BusinessDocumentCargoMulti::getOrderId,businessDocumentOrder.getId()) + .eq(BusinessDocumentCargoMulti::getDelFlag,1)); + if(ObjectUtil.isNotNull(businessDocumentCargoMultiList)&&businessDocumentCargoMultiList.size()>0){ + for (BusinessDocumentCargoMulti businessDocumentCargoMulti:businessDocumentCargoMultiList){ + TmsCargoInfoDTO tmsCargoInfoDTO=new TmsCargoInfoDTO(); + BeanUtils.copyProperties(businessDocumentCargoMulti,tmsCargoInfoDTO); + cargoInfoList.add(tmsCargoInfoDTO); + } + } + //装货地址信息 + List businessDocumentAddressMultiList=businessDocumentAddressMultiMapper.selectList(new QueryWrapper().lambda() + .eq(BusinessDocumentAddressMulti::getOrderId,businessDocumentOrder.getId()) + .eq(BusinessDocumentAddressMulti::getDelFlag,1) + .eq(BusinessDocumentAddressMulti::getLayType,1)); + if(ObjectUtil.isNotNull(businessDocumentAddressMultiList)&&businessDocumentAddressMultiList.size()>0){ + for (BusinessDocumentAddressMulti businessDocumentAddressMulti:businessDocumentAddressMultiList){ + TmsAddressMultiDTO tmsAddressMultiDTO=new TmsAddressMultiDTO(); + BeanUtils.copyProperties(businessDocumentAddressMulti,tmsAddressMultiDTO); + loadingAddressList.add(tmsAddressMultiDTO); + } + } + //卸货货地址信息 + List businessDocumentAddressMultiUnloadList=businessDocumentAddressMultiMapper.selectList(new QueryWrapper().lambda() + .eq(BusinessDocumentAddressMulti::getOrderId,businessDocumentOrder.getId()) + .eq(BusinessDocumentAddressMulti::getDelFlag,1) + .eq(BusinessDocumentAddressMulti::getLayType,2)); + if(ObjectUtil.isNotNull(businessDocumentAddressMultiUnloadList)&&businessDocumentAddressMultiUnloadList.size()>0){ + for (BusinessDocumentAddressMulti businessDocumentAddressMulti:businessDocumentAddressMultiUnloadList){ + TmsAddressMultiDTO tmsAddressMultiDTO=new TmsAddressMultiDTO(); + BeanUtils.copyProperties(businessDocumentAddressMulti,tmsAddressMultiDTO); + unloadAddressList.add(tmsAddressMultiDTO); + } + } + AjaxResult ajaxResult=wlhyServiceFeign.add(tmsOrderAddDTO); + if(ajaxResult.get("code").toString().equals("200")){ - + }else { + throw new ServiceException(ajaxResult.get("msg").toString()); + } + } } } return null; diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessDocumentOrder/BusinessDocumentOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessDocumentOrder/BusinessDocumentOrderApi.java index 6434ab9bd..740603ce6 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessDocumentOrder/BusinessDocumentOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessDocumentOrder/BusinessDocumentOrderApi.java @@ -85,9 +85,9 @@ public class BusinessDocumentOrderApi extends BaseController{ */ @ApiOperation("业务单审核") @GetMapping(value = "/audit") - public AjaxResult audit(@RequestParam("id") Long id,@RequestParam("reviewStatus") Long reviewStatus) + public AjaxResult audit(@RequestParam("ids") Long[] ids,@RequestParam("reviewStatus") Long reviewStatus) { - return AjaxResult.success(businessDocumentOrderApplicationService.audit(id,reviewStatus)); + return AjaxResult.success(businessDocumentOrderApplicationService.audit(ids,reviewStatus)); } /** @@ -102,6 +102,15 @@ public class BusinessDocumentOrderApi extends BaseController{ + /** + * 批量取消执行【业务单】 + */ + @ApiOperation("批量取消执行【业务单】") + @PostMapping("/cancelExecute") + public AjaxResult cancelExecute(@RequestParam("ids") Long[] ids) + { + return toAjax(businessDocumentOrderApplicationService.cancelExecute(ids)); + } diff --git a/sql/oms.sql b/sql/oms.sql new file mode 100644 index 000000000..e69de29bb