执行单下发

This commit is contained in:
hjx
2026-01-28 17:58:51 +08:00
parent e5476beb07
commit 126a826513
14 changed files with 791 additions and 27 deletions
@@ -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);
}
@@ -523,6 +523,11 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory<WlhyServiceFei
public Result<?> queryById(String id) {
return null;
}
@Override
public AjaxResult add(TmsOrderAddDTO tmsOrderAddDTO) {
return AjaxResult.error(cause.getMessage());
}
};
}
}
@@ -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;
}
@@ -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;
}
@@ -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 = "配载方式ID0-数量,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<TmsCargoInfoDTO> cargoInfoList;
@ApiModelProperty(value = "装货地址集合")
private List<TmsAddressMultiDTO> loadingAddressList;
@ApiModelProperty(value = "卸货地址集合")
private List<TmsAddressMultiDTO> 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;
}
@@ -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);
}
}
@@ -675,7 +675,7 @@ public class BusinessDocumentOrder extends BaseVOEntity{
@ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发")
@ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发 4-已取消")
private Long executeStatus;
@ApiModelProperty("执行时间")
@@ -37,13 +37,15 @@ public interface IBusinessDocumentOrderService extends IService<BusinessDocument
public Boolean execute(Long[] ids);
public Boolean cancelExecute(Long[] ids) throws Exception;
/**
* 查询请填写功能名称
*/
public BusinessDocumentOrderPO getInfo(Long id);
public BusinessDocumentOrderPO audit( Long id, Long reviewStatus);
public Boolean audit( Long [] ids, Long reviewStatus);
String selectByMakerCodeNc(String salesmanCodeNc);
@@ -1,6 +1,7 @@
package com.mhd.oms.domain.businessDocumentOrder.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.security.utils.SecurityUtils;
import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder;
@@ -9,6 +10,7 @@ import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocume
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder;
import com.mhd.oms.domain.executeOrder.repository.mapper.ExecuteOrderMapper;
import com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO;
import com.mhd.oms.domain.executeOrder.service.ExecuteOrderDomainService;
import com.mhd.system.api.model.LoginUser;
@@ -16,6 +18,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.rmi.ServerException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -34,6 +37,10 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
@Autowired
private ExecuteOrderDomainService executeOrderDomainService;
@Autowired
private ExecuteOrderMapper executeOrderMapper;
/**
* 查询请填写功能名称列表
*/
@@ -90,25 +97,24 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
}
@Override
public BusinessDocumentOrderPO audit(Long id, Long reviewStatus) {
public Boolean audit(Long[] ids, Long reviewStatus) {
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(businessDocumentOrder)){
businessDocumentOrder.setReviewStatus(reviewStatus);
businessDocumentOrder.setReviewId(loginUser.getUserid());
businessDocumentOrder.setReview(loginUser.getUsername());
businessDocumentOrder.setReviewTime(new Date());
if(reviewStatus==1){
businessDocumentOrder.setOrderStatus(1L);
businessDocumentOrder.setExecuteStatus(1L);
}else{
businessDocumentOrder.setOrderStatus(0L);
for (Long id:ids){
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(businessDocumentOrder)){
businessDocumentOrder.setReviewStatus(reviewStatus);
businessDocumentOrder.setReviewId(loginUser.getUserid());
businessDocumentOrder.setReview(loginUser.getUsername());
businessDocumentOrder.setReviewTime(new Date());
if(reviewStatus==1){
businessDocumentOrder.setOrderStatus(1L);
businessDocumentOrder.setExecuteStatus(1L);
}else{
businessDocumentOrder.setOrderStatus(0L);
}
businessDocumentOrderMapper.updateById(businessDocumentOrder);
}
businessDocumentOrderMapper.updateById(businessDocumentOrder);
BusinessDocumentOrder businessDocumentOrder1 = this.getById(id);
BusinessDocumentOrderPO businessDocumentOrderPO = new BusinessDocumentOrderPO();
BeanUtils.copyProperties(businessDocumentOrder1,businessDocumentOrderPO);
return businessDocumentOrderPO;
}
return null;
}
@@ -131,6 +137,7 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
executeOrderDO.setGoodsNumber(businessDocumentOrder.getGoodsNumber());
executeOrderDO.setCreateBy(loginUser.getUserid());
executeOrderDO.setCreateTime(new Date());
executeOrderDO.setDelFlag(1);
executeOrderDO.setOrganizationId(businessDocumentOrder.getOrganizationId());
executeOrderDO.setOrgName(businessDocumentOrder.getOrgName());
executeOrderDO.setTopOrganizationId(businessDocumentOrder.getTopOrganizationId());
@@ -142,6 +149,38 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
return null;
}
@Override
public Boolean cancelExecute(Long[] ids) throws Exception{
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
for (Long id:ids){
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(businessDocumentOrder)){
//businessDocumentOrder.setExecuteId(loginUser.getUserid());
businessDocumentOrder.setExecuteStatus(4L);
//businessDocumentOrder.setExecuteTime(new Date());
//businessDocumentOrder.setExecutor(loginUser.getUsername());
businessDocumentOrder.setOrderStatus(4L);
businessDocumentOrderMapper.updateById(businessDocumentOrder);
List<ExecuteOrder> list=executeOrderMapper.selectList(new QueryWrapper<ExecuteOrder>().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);
@@ -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);
}
/**
* 查询编码对应名称
@@ -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;
}
@@ -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<ExecuteOrderMapper, ExecuteOrder> 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<ExecuteOrderMapper, ExecuteOrd
@Override
public Boolean issueDocuments(Long[] ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
for (Long id:ids){
ExecuteOrder executeOrder=executeOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(executeOrder)){
executeOrder.setIssueStatus(2L);
executeOrder.setIssueTime(new Date());
executeOrder.setIssueId(loginUser.getUserid());
executeOrder.setIssueName(loginUser.getUsername());
executeOrder.setOrderStatus(1L);
executeOrderMapper.updateById(executeOrder);
//下发到tms
TmsOrderAddDTO tmsOrderAddDTO=new TmsOrderAddDTO();
List<TmsCargoInfoDTO> cargoInfoList=new ArrayList<TmsCargoInfoDTO>();
List<TmsAddressMultiDTO> loadingAddressList=new ArrayList<TmsAddressMultiDTO>();
List<TmsAddressMultiDTO> unloadAddressList=new ArrayList<TmsAddressMultiDTO>();
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(executeOrder.getBusinessDocumentId());
if(ObjectUtil.isNotNull(businessDocumentOrder)){
BeanUtils.copyProperties(businessDocumentOrder,tmsOrderAddDTO);
tmsOrderAddDTO.setExecuteOrderId(String.valueOf(id));
tmsOrderAddDTO.setExecuteOrderNumber(executeOrder.getGoodsNumber());
//货物信息
List<BusinessDocumentCargoMulti> businessDocumentCargoMultiList=businessDocumentCargoMultiMapper.selectList(new QueryWrapper<BusinessDocumentCargoMulti>().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<BusinessDocumentAddressMulti> businessDocumentAddressMultiList=businessDocumentAddressMultiMapper.selectList(new QueryWrapper<BusinessDocumentAddressMulti>().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<BusinessDocumentAddressMulti> businessDocumentAddressMultiUnloadList=businessDocumentAddressMultiMapper.selectList(new QueryWrapper<BusinessDocumentAddressMulti>().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;
@@ -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));
}
View File