Merge branch 'dev' into test

# Conflicts:
#	mhd_finance/src/main/resources/bootstrap.yml
This commit is contained in:
赵辉
2026-02-06 14:20:05 +08:00
1140 changed files with 129104 additions and 240 deletions
@@ -180,4 +180,8 @@ public interface UserServiceFeign {
@ApiOperation("查询承运人汇总数据")
@GetMapping("/userShipperApi/getShipperSummaryData/{userId}")
public AjaxResult<?> getShipperSummaryData(@PathVariable("userId") Long userId);
@ApiOperation("根据用户ID查询货主信息")
@GetMapping("/userShipperApi/getShipperByUserId/{userId}")
public AjaxResult<?> getShipperByUserId(@PathVariable("userId") Long userId);
}
@@ -303,7 +303,13 @@ public interface WlhyServiceFeign {
@GetMapping(value = "/feign/transportNote/selectByOrderNum")
public R<TmsTransportNote> selectByOrderNum(@RequestParam(value = "orderNo") String orderNo);
/**
* 根据发票id查询发票信息
* @param id
* @return
*/
@GetMapping(value = "/feign/invoiceList/selectById")
public R<TmsInvoiceListDetailsVO> selectInvoiceListById(@RequestParam(value = "id") String id);
/**
* 运输单表-支付回调
* @param tmsPayCallbackList
@@ -512,4 +518,15 @@ 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);
@GetMapping("/feign/order/cancelIssueDocuments")
public AjaxResult cancelIssueDocuments(@RequestParam(name="executeOrderId") String executeOrderId);
}
@@ -0,0 +1,226 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
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.Date;
/**
* @Description: 销项发票表
* @Author: lfs
* @Date: 2020-02-19 08:50:47
* @Version: V1.0
*/
@Data
@TableName("tms_invoice_list")
public class TmsInvoiceList implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ID_WORKER_STR)
private String id;
/**发票抬头*/
@ApiModelProperty(value = "发票抬头")
private String invoiceTitle;
/**发票金额*/
@ApiModelProperty(value = "发票金额")
private BigDecimal invoiceValue;
/**发票备注*/
@ApiModelProperty(value = "发票备注")
private String remark;
/**发票状态(0-未开票,1-已取消申请,2-已开票,3-已驳回,4-已寄出,5-已作废)*/
@ApiModelProperty(value = "发票状态(0-未开票,1-已取消申请,2-已开票,3-已驳回,4-已寄出,5-已作废)")
private Integer invoiceState;
/**发票申请时间*/
@ApiModelProperty(value = "发票申请时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date invoiceApplyTime;
/**申请人ID*/
@ApiModelProperty(value = "申请人ID")
private String applicantId;
/**发票申请单号*/
@ApiModelProperty(value = "发票申请单号")
private String applyNumber;
/**驳回原因*/
@ApiModelProperty(value = "驳回原因")
private String rejectReason;
/**运输单ids*/
@ApiModelProperty(value = "运输单ids")
private String transportationIds;
/**退票备注*/
@ApiModelProperty(value = "退票备注")
private String refundRemark;
/**处理人ID(取消申请/开票/驳回)*/
@ApiModelProperty(value = "处理人ID(取消申请/开票/驳回)")
private String managerId;
/**处理时间*/
@ApiModelProperty(value = "处理时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date managerTime;
/**寄出人ID*/
@ApiModelProperty(value = "寄出人ID")
private String sendById;
/**寄出时间*/
@ApiModelProperty(value = "寄出时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date sendTime;
/**寄出邮费*/
@ApiModelProperty(value = "寄出邮费")
private BigDecimal sendPostage;
/**快递公司*/
@ApiModelProperty(value = "快递公司")
private String courierServicesCompany;
/**收件地址id*/
@ApiModelProperty(value = "收件地址id")
private String receivingAddressId;
/**手机号*/
@ApiModelProperty(value = "手机号")
private String phone;
/**收件人姓名*/
@ApiModelProperty(value = "收件人姓名")
private String receivingName;
/**邮政编码*/
@ApiModelProperty(value = "邮政编码")
private String postalCode;
/**所在地区*/
@ApiModelProperty(value = "所在地区")
private String location;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@ApiModelProperty(value = "创建日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@ApiModelProperty(value = "更新日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**是否删除(0-否,1-是)*/
@ApiModelProperty(value = "是否删除(0-否,1-是)")
private Integer isDelete;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**发票类型(0-增值税专用发票,1-普通发票)*/
@ApiModelProperty(value = "发票类型(0-增值税专用发票,1-普通发票)")
private Integer invoiceType;
/**发票性质(0-纸质发票,1-电子发票)*/
@ApiModelProperty(value = "发票性质(0-纸质发票,1-电子发票)")
private Integer invoiceNature;
/**发票号*/
@ApiModelProperty(value = "发票号")
private String invoiceNumber;
/**快递单号*/
@ApiModelProperty(value = "快递单号")
private String trackingNumber;
/**开票代码*/
@ApiModelProperty(value = "开票代码")
private String invoiceCode;
/**发票详情信息上报状态:0-未上报,1-已上报,2-上报失败*/
@ApiModelProperty(value = "发票详情信息上报状态:0-未上报,1-已上报,2-上报失败")
private Integer isReport;
/**发票详情信息上报失败原因*/
@ApiModelProperty(value = "发票详情信息上报失败原因")
private String errMsg;
/**发票详情信息上报时间*/
@ApiModelProperty(value = "发票详情信息上报时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date reportTime;
@ApiModelProperty(value = "运单事实创建人ID(创建运单时的当前登录人USER-ID)")
private String realCreateBy;
@ApiModelProperty(value = "运单事实创建人名称(创建运单时的当前登录人REAL-NAME)")
private String realCreateName;
@ApiModelProperty(value = "开票时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date invoiceMakeTime;
/**货主信息id*/
@ApiModelProperty(value = "货主信息id")
private String shipperId;
/**货主信息id*/
@ApiModelProperty(value = "货主姓名")
private String shipperName;
/**货主信息id*/
@ApiModelProperty(value = "货主公司名称")
private String companyName;
/**税务登记证号*/
@ApiModelProperty(value = "税务登记证号")
private String taxRegAccount;
/**组织ID*/
@ApiModelProperty(value = "组织ID")
private Long organizationId;
/**组织名称*/
@ApiModelProperty(value = "组织名称")
private String organizationName;
/**一级组织ID*/
@ApiModelProperty(value = "一级组织ID")
private Long topOrganizationId;
}
@@ -0,0 +1,176 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
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.Date;
import java.util.List;
import java.util.Map;
/**
* @Description: 销项发票表
* @Author: lfs
* @Date: 2020-02-19 08:50:47
* @Version: V1.0
*/
@Data
public class TmsInvoiceListDetailsVO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ID_WORKER_STR)
private String id;
/**发票抬头*/
@ApiModelProperty(value = "发票抬头")
private String invoiceTitle;
/**发票金额*/
@ApiModelProperty(value = "发票金额")
private BigDecimal invoiceValue;
/**发票备注*/
@ApiModelProperty(value = "发票备注")
private String remark;
/**发票状态(0-未开票,1-已取消申请,2-已开票,3-已驳回,4-已寄出,5-已作废)*/
@ApiModelProperty(value = "发票状态(0-未开票,1-已取消申请,2-已开票,3-已驳回,4-已寄出,5-已作废)")
private Integer invoiceState;
/**发票申请时间*/
@ApiModelProperty(value = "发票申请时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date invoiceApplyTime;
/**申请人ID*/
@ApiModelProperty(value = "申请人ID")
private String applicantId;
/**驳回原因*/
@ApiModelProperty(value = "驳回原因")
private String rejectReason;
/**退票备注*/
@ApiModelProperty(value = "退票备注")
private String refundRemark;
/**处理人ID(取消申请/开票/驳回)*/
@ApiModelProperty(value = "处理人ID(取消申请/开票/驳回)")
private String managerId;
/**处理时间*/
@ApiModelProperty(value = "处理时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date managerTime;
/**寄出人ID*/
@ApiModelProperty(value = "寄出人ID")
private String sendById;
/**寄出时间*/
@ApiModelProperty(value = "寄出时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date sendTime;
/**寄出邮费*/
@ApiModelProperty(value = "寄出邮费")
private BigDecimal sendPostage;
/**快递公司*/
@ApiModelProperty(value = "快递公司")
private String courierServicesCompany;
/**收件地址id*/
@ApiModelProperty(value = "收件地址id")
private String receivingAddressId;
/**收件姓名*/
@ApiModelProperty(value = "收件姓名")
private String receivingName;
/**收件地址*/
@ApiModelProperty(value = "收件地址")
private String location;
/**手机号*/
@ApiModelProperty(value = "手机号")
private String phone;
/**运输单ids*/
@ApiModelProperty(value = "运输单ids")
private String transportationIds;
/**创建日期*/
@ApiModelProperty(value = "创建日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**税务登记证号*/
@ApiModelProperty(value = "税务登记证号")
private String taxRegAccount;
/**运输单列表*/
/* @ApiModelProperty(value = "运输单列表")
private List<TmsOrderVO> tmsOrderVOList;*/
/**发票类型(0-增值税专用发票,1-普通发票)*/
@ApiModelProperty(value = "发票类型(0-增值税专用发票,1-普通发票)")
private String invoiceType;
/**发票性质(0-纸质发票,1-电子发票)*/
@ApiModelProperty(value = "发票性质(0-纸质发票,1-电子发票)")
private String invoiceNature;
/**发票号*/
@ApiModelProperty(value = "发票号")
private String invoiceNumber;
/**快递单号*/
@ApiModelProperty(value = "快递单号")
private String trackingNumber;
/**开票表集合*/
@ApiModelProperty(value = "开票表集合")
private List<TmsMakeOutInvoice> tmsMakeOutInvoices;
/**账单项目费用*/
@ApiModelProperty(value = "账单项目费用")
private List<Map<String, Object>> feeList;
/**货主信息id*/
@ApiModelProperty(value = "货主信息id")
private String shipperId;
/**货主信息id*/
@ApiModelProperty(value = "货主姓名")
private String shipperName;
/**货主电话*/
@ApiModelProperty(value = "货主电话")
private String shipperPhone;
/**货主信息id*/
@ApiModelProperty(value = "货主公司名称")
private String companyName;
@ApiModelProperty(value = "统一社会信用代码")
private String regAccount;
}
@@ -0,0 +1,130 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
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.Date;
/**
* @Description: 销项发票表
* @Author: lfs
* @Date: 2020-02-19 08:50:47
* @Version: V1.0
*/
@Data
@TableName("tms_make_out_invoice")
public class TmsMakeOutInvoice implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ID_WORKER_STR)
private String id;
/**发票ID*/
@ApiModelProperty(value = "发票ID")
private String invoiceId;
/**发票抬头*/
@ApiModelProperty(value = "发票抬头")
private String invoiceTitle;
/**发票金额*/
@ApiModelProperty(value = "发票金额")
private BigDecimal invoiceValue;
/**发票备注*/
@ApiModelProperty(value = "发票备注")
private String remark;
/**发票状态(0-未开票,1-已取消申请,2-已开票,3-已驳回,4-已寄出,5-已作废)*/
@ApiModelProperty(value = "发票状态(0-未开票,1-已取消申请,2-已开票,3-已驳回,4-已寄出,5-已作废)")
private Integer invoiceState;
/**发票申请时间*/
@ApiModelProperty(value = "发票申请时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date invoiceApplyTime;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@ApiModelProperty(value = "创建日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@ApiModelProperty(value = "更新日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**是否删除(0-否,1-是)*/
@ApiModelProperty(value = "是否删除(0-否,1-是)")
private Integer isDelete;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**开票号码*/
@ApiModelProperty(value = "开票号码")
private String invoiceNumber;
/**开票人ID*/
@ApiModelProperty(value = "开票人ID")
private String makeOutInvoiceId;
/**开票时间*/
@ApiModelProperty(value = "开票时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date makeOutInvoiceTime;
/**开票代码*/
@ApiModelProperty(value = "开票代码")
private String invoiceCode;
/**上报状态:0-未上报,1-已上报,2-上报失败*/
@ApiModelProperty(value = "上报状态:0-未上报,1-已上报,2-上报失败")
private Integer isReport;
/**上报时间*/
@ApiModelProperty(value = "上报时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date reportTime;
/**失败原因*/
@ApiModelProperty(value = "失败原因")
private String errMsg;
@ApiModelProperty(value = "电子发票地址")
private String invoiceFileUrl;
@ApiModelProperty(value = "发票摘要")
private String invoiceAbstract;
@ApiModelProperty(value = "开票项目")
private String invoiceItem;
@ApiModelProperty(value = "实际开票客户id")
private String actualInvoiceCustomerId;
@ApiModelProperty(value = "实际开票客户名称")
private String actualInvoiceCustomerName;
}
@@ -0,0 +1,771 @@
/*
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
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.Date;
import java.util.List;
import java.util.Map;
*/
/**
* @Description: 货源表
* @Author: lfs
* @Date: 2020-02-14 09:49:27
* @Version: V1.0
*//*
@Data
public class TmsOrderVO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.ID_WORKER_STR)
private String id = "";
@ApiModelProperty(value = "创建人")
private String createBy = "";
@ApiModelProperty(value = "创建人")
private String createrAvatar = "";
@ApiModelProperty(value = "创建日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "更新人")
private String updateBy = "";
@ApiModelProperty(value = "更新日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@ApiModelProperty(value = "所属部门")
private String sysOrgCode = "";
@ApiModelProperty(value = "货源单号")
private String goodsNumber = "";
@ApiModelProperty(value = "线路名称ID")
private String lineNameId = "";
@ApiModelProperty(value = "线路名称")
private String lineName = "";
@ApiModelProperty(value = "运距(千米)")
private BigDecimal haulDistance = new BigDecimal("0");
@ApiModelProperty(value = "装货地名称")
private String loadingName = "";
@ApiModelProperty(value = "装货地县区编码")
private String loadingAreaId = "";
@ApiModelProperty(value = "装货地详细地址")
private String loadingAddress = "";
@ApiModelProperty(value = "装货地经度")
private String loadingLongitude = "";
@ApiModelProperty(value = "装货地纬度")
private String loadingLatitude = "";
@ApiModelProperty(value = "装货单位")
private String loadingUnit = "";
@ApiModelProperty(value = "发货人姓名")
private String freighterName = "";
@ApiModelProperty(value = "装货电话")
private String loadingPhone = "";
@ApiModelProperty(value = "装货时间日期(年月日)")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date loadingDate;
@ApiModelProperty(value = "装货时间(上午、下午、24小时)")
private String loadingTime = "";
@ApiModelProperty(value = "装货时间id")
private String loadingTimeId;
@ApiModelProperty(value = "卸货地名称")
private String unloadName = "";
@ApiModelProperty(value = "卸货地县区编码")
private String unloadAreaId = "";
@ApiModelProperty(value = "卸货地详细地址")
private String unloadAddress = "";
@ApiModelProperty(value = "卸货地经度")
private String unloadLongitude = "";
@ApiModelProperty(value = "卸货地纬度")
private String unloadLatitude = "";
@ApiModelProperty(value = "卸货单位")
private String unloadUnit = "";
@ApiModelProperty(value = "收货人姓名")
private String dischargerName = "";
@ApiModelProperty(value = "卸货电话")
private String unloadPhone = "";
@ApiModelProperty(value = "卸货时间日期(年月日)")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date unloadingData;
@ApiModelProperty(value = "卸货时间(上午、下午、24小时)")
private String unloadingTime = "";
@ApiModelProperty(value = "卸货时间Id")
private String unloadingTimeId = "";
@ApiModelProperty(value = "货物名称ID")
private String goodsNameId = "";
@ApiModelProperty(value = "货物大类型")
private String goodsType="";
@ApiModelProperty(value = "货物小类型")
private String goodsName="";
@ApiModelProperty(value = "重量小(吨)")
private BigDecimal weightMin = new BigDecimal("0");
@ApiModelProperty(value = "重量大(吨)")
private BigDecimal weightMax = new BigDecimal("0");
@ApiModelProperty(value = "货物数量单位(吨/方/件)")
private String goodsUntis = "";
@ApiModelProperty(value = "货物数量单位(吨/方/件)ID")
private String goodsUntisId = "";
@ApiModelProperty(value = "配载方式ID0-数量,1-车次)")
private Integer transportationModeId =0;
@ApiModelProperty(value = "是否接单(0-否,1-是)")
private Integer isOrder = 0;
@ApiModelProperty(value = "配载方式名称")
private String transportationName= "";
@ApiModelProperty(value = "现已承运车次")
private Integer realTrainNumber = 0;
@ApiModelProperty(value = "车型车长ID")
private String carType = "";
@ApiModelProperty(value = "车型车长名称")
private String carTypeName="";
@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 serviceRequire = "";
@ApiModelProperty(value = "备注")
private String remarks = "";
@ApiModelProperty(value = "上游客户ID")
private String upstreamCustomersId = "";
@ApiModelProperty(value = "上游客户姓名")
private String upstreamCustomersName = "";
@ApiModelProperty(value = "上游客户电话")
private String upstreamCustomersPhone = "";
@ApiModelProperty(value = "运单类型(0-企业普货、1-企业批量货、2-撮合货、3-客服运单、4-线下运单)")
private Integer waybillType ;
@ApiModelProperty(value = "运单类型(0-企业普货、1-企业批量货、2-撮合货、3-客服运单、4-线下运单)")
private String waybillTypeName = "";
@ApiModelProperty(value = "运单来源(0-后台发布、1-app发布、2-导入)")
private Integer waybillFrom;
@ApiModelProperty(value = "定金")
private BigDecimal earnestMoney = new BigDecimal("0");
@ApiModelProperty(value = "确认协议重量和")
private BigDecimal agreementWeights = new BigDecimal("0");
@ApiModelProperty(value = "装货重量和")
private BigDecimal loadingNumbers = new BigDecimal("0");
@ApiModelProperty(value = "货源是否关闭(0-否,1-是)")
private Integer isSource = 0;
@ApiModelProperty(value = "货源关闭时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date sourceCloseTime;
@ApiModelProperty(value = "货源关闭人用户ID")
private String executorId = "";
@ApiModelProperty(value = "是否删除(0-否,1-是)")
private Integer isDelete = 0;
@ApiModelProperty(value = "运输单号")
private String waybillNumber="";
@ApiModelProperty(value = "公司名称")
private String companyName="";
@ApiModelProperty(value = "姓名")
private String shipperName="";
@ApiModelProperty(value = "电话")
private String shipperPhone="";
@ApiModelProperty(value = "用户ID")
private String shipperId = "";
@ApiModelProperty(value = "运输司机ID")
private String transportationDriverId ="";
@ApiModelProperty(value = "运输司机姓名")
private String transportationDriver ="";
@ApiModelProperty(value = "运输司机电话")
private String transportationPhone ="";
@ApiModelProperty(value = "运输车辆ID")
private String transportationCarId ="";
@ApiModelProperty(value = "运输车辆车牌号")
private String transportationPlate = "";
@ApiModelProperty(value = "货源单创建企业ID")
private String createCompanyId = "";
@ApiModelProperty(value = "期望运费")
private BigDecimal freightHope = new BigDecimal("0");
@ApiModelProperty(value = "运输状态(0-待确认,1-运输中,2-已完成,3-待评价,4-已评价,5-已取消,6-已关闭)")
private Integer waybillStatus;
@ApiModelProperty(value = "承运货物数量")
private String loadingNumber ="";
@ApiModelProperty(value = "车队名称")
private String motorcadeName="";
@ApiModelProperty(value = "货物类型ID")
private String goodsTypeId="";
@ApiModelProperty(value = "创建人手机号")
private String phone="";
@ApiModelProperty(value = "创建人名称")
private String realname="";
@ApiModelProperty(value = "货运线路(装货市县)")
private String lineTitleLeft="";
@ApiModelProperty(value = "货运线路(卸货市县)")
private String lineTitleRight="";
@ApiModelProperty(value = "发货时间距当前时间差")
private String daysAgo="";
@ApiModelProperty(value = "交易量")
private String transportCount = "";
@ApiModelProperty(value = "好评率")
private String praiseNumber ="100%";
@ApiModelProperty(value = "装货时间日期(年月日)")
private String loadingDateDay="";
@ApiModelProperty(value = "装货时间日期(年-月-日)")
private String loadingDateTime="";
@ApiModelProperty(value = "卸货时间日期(年-月-日)")
private String unloadingDateTime="";
@ApiModelProperty(value = "卸货时间日期(年月日)")
private String unloadingDateDay="";
@ApiModelProperty(value = "是否为常发货源(0-否,1-是)")
private Integer isCommon = 0;
@ApiModelProperty(value = "审核状态")
private String auditStatus;
@ApiModelProperty(value = "审核状态中文")
private String auditStatusName ="";
@ApiModelProperty(value = "运输单号")
private String transportationNumber="";
@ApiModelProperty(value = "发货运费")
private BigDecimal deliveryFreight = new BigDecimal("0");
@ApiModelProperty(value = "审核人手机号")
private String auditByPhone="";
@ApiModelProperty(value = "审核人")
private String auditBy="";
@ApiModelProperty(value = "审核人名称")
private String auditByName="";
@ApiModelProperty(value = "审核人公司名称")
private String auditByCompanyName="";
@ApiModelProperty(value = "所属公司名称")
private String platformCompanyName;
@ApiModelProperty(value = "运费单价(元/吨)")
private BigDecimal transportationUnitPrice;
@ApiModelProperty(value = "赫达订单号")
private String orderNumber="";
@ApiModelProperty(value = "是否长期货源:0-否,1-是")
private Integer isLongOrder = 0;
@ApiModelProperty(value = "微信小程序图片地址")
private String wxaQrcode="";
@ApiModelProperty(value = "微信小程序AppID")
private String wxaAppID="";
@ApiModelProperty(value = "代运营人员用户ID")
private String orderAgentUserId="";
@ApiModelProperty(value = "代运营人员名称")
private String orderAgentUserName="";
@ApiModelProperty(value = "代运营人员手机")
private String orderAgentUserPhone="";
@ApiModelProperty(value = "公司经营模式(0-总公司,1-总+分公司)")
private Integer isTypeInsuranceUse = 0;
@ApiModelProperty(value = "指定平台公司")
private String appointCompanyId;
@ApiModelProperty(value = "指定平台公司名称")
private String appointCompanyName;
@ApiModelProperty(value = "服务费")
private String serviceRate;
@ApiModelProperty(value = "指定货主编号")
private String appointShipperId;
@ApiModelProperty(value = "指定货主")
private String appointShipper;
@ApiModelProperty(value = "结算方式:1-按趟结算,2-按数量结算")
private Integer radioValue;
@ApiModelProperty(value = "指定平台公司名称")
private String appointCompany;
@ApiModelProperty(value = "短驳装货地址")
private String shortLoadingAddress;
@ApiModelProperty(value = "短驳卸货地址")
private String shortUnloadAddress;
@ApiModelProperty(value = "指定设备号")
private String appointVehicleDevice;
@ApiModelProperty(value = "车牌号")
private String vehicleLicenseNumber;
@ApiModelProperty(value = "司机")
private String driverName;
@ApiModelProperty(value = "指定车辆")
private String appointVehicle;
@ApiModelProperty(value = "发布货源方式 0-未指定;1-企业货源;2-平台货源")
private Integer publishOrderType;
@ApiModelProperty(value = "剩余吨数")
private BigDecimal surplusTonnage;
*/
/**是否开启路耗(0-否 1-是)*//*
@ApiModelProperty(value = "是否开启路耗(0-否 1-是)")
@Excel(name = "是否开启路耗(0-否 1-是)", width = 15)
private Integer isRoadLoss;
*/
/**货物价值(元/吨)*//*
@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;
*/
/**路耗结算方式(0-无 1-取装货重量 2-取卸货重量 3-装卸货取大 4-装卸货取小)*//*
@ApiModelProperty(value = "路耗结算方式(0-无 1-取装货重量 2-取卸货重量 3-装卸货取大 4-装卸货取小)")
@Excel(name = "路耗结算方式(0-无 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 = "货单二维码图片地址")
private String qrCodeImgUrl;
*/
/**回单付金额*//*
@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 = "是否协议费用生成:0否 1是")
private Integer isAutoGenerateProtocol;
*/
/**单车重量*//*
@ApiModelProperty(value = "单车重量",required = true)
private BigDecimal singleVehicleWeight;
*/
/**单车总费用*//*
@ApiModelProperty(value = "单车总费用")
@Excel(name = "单车总费用", width = 15)
private BigDecimal freightGross=BigDecimal.ZERO;
@ApiModelProperty(value = "运费抹零 0-不抹零 ,1-抹零小数位,2-抹零个位,3-抹零十位")
private Integer isFreightNullification;
@ApiModelProperty(value = "运费抹零 0-不抹零 ,1-抹零小数位,2-抹零个位,3-抹零十位")
private String isFreightNullificationName;
@ApiModelProperty(value = "是否允许接多单:0否 1是")
private Integer isMultipleOrdersAllowed;
@ApiModelProperty(value = "发货备注")
private String shippingNote;
@ApiModelProperty(value = "绑卡状态 0-未绑卡 1-已绑卡未完成回填 2-已绑卡已完成回填")
private Integer strappedStatus=2;
@ApiModelProperty("应收结算类型:1-月结,2-现结")
private Integer receivableType;
@ApiModelProperty("项目表ID")
private Long projectManagementId;
@ApiModelProperty(value = "接单司机ID")
private String orderDriverId;
@ApiModelProperty(value = "货物数量")
private String goodsQuantity;
@ApiModelProperty(value = "货物数量单位code")
private String goodsQuantityUnitId;
@ApiModelProperty(value = "货物数量单位")
private String goodsQuantityUnit;
@ApiModelProperty(value = "运单数量")
private Integer transportNoteCount=0;
@ApiModelProperty(value = "常用货主id")
private String topOrder;
//=================批量货派单相关=============================
@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 Integer quotationQuantity = 0;
@ApiModelProperty(value = "运单模式(0-普通模式,1-竞价模式)")
private Integer waybillMode;
@ApiModelProperty(value = "竞价截止时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date latestBiddingTime;
@ApiModelProperty(value = "预设竞标价")
private BigDecimal presetPrice;
@ApiModelProperty(value = "竞价单位(元/车,元/吨)")
private String biddingUnit;
@ApiModelProperty(value = "最高心理价")
private BigDecimal highestPrice;
@ApiModelProperty(value = "订单状态(1-未审核,2-未通过,3-进行中,4-已完成,5-已关闭)")
private Integer orderStatus;
@ApiModelProperty(value = "货源对应运单数量")
private Integer transportNum = 0;
@ApiModelProperty(value = "货源对应货运单数量")
private Integer truckOrderCount = 0;
@ApiModelProperty(value = "订单模式(0-手动竞价,1-自动竞价,2-普通模式,其他-全部)")
private Integer orderMode;
@ApiModelProperty(value = "评标类型(0-自动评标,1-手动评标)")
private Integer bidEvaluationType;
@ApiModelProperty(value = "订单类型:0-自有订单,1-tms订单")
private Integer orderType;
@ApiModelProperty(value = "多装多卸类型")
private String layType;
@ApiModelProperty(value = "拼单类型(0-不拼单(主单),1-拼单-子单,2-拼单-合单)")
private Integer splicingOrderType;
@ApiModelProperty(value = "拼单发布状态(0-否,1-是)")
private Integer splicingStatus;
@ApiModelProperty(value = "拼单主单id")
private String mainOrderId;
@ApiModelProperty(value = "拼单主单号")
private String mainOrderNum;
@ApiModelProperty(value = "拼单合单id")
private String mergeOrderId;
@ApiModelProperty(value = "拼单合单号")
private String mergeOrderNum;
@ApiModelProperty(value = "来源系统")
private String orderSource;
@ApiModelProperty(value = "通知单号")
private String noticeNumber;
@ApiModelProperty(value = "司机税率")
private BigDecimal driverTaxRate;
@ApiModelProperty(value = "tms到付运费金额")
private BigDecimal tmsFreightAmount;
@ApiModelProperty(value = "订单其他信息")
private Map<String,String> otherOrderInfo;
@ApiModelProperty(value = "订单类型")
private Integer orderShippingType;
@ApiModelProperty(value = "订单类型")
private String orderShippingName;
@ApiModelProperty(value = "付款方")
private String payerTypeName;
@ApiModelProperty(value = "付款方类型(0-委托方,1-收货方)")
@Excel(name = "付款方类型(0-委托方,1-收货方)", width = 15)
private Integer payerType;
@ApiModelProperty(value = "整机编号")
private String machineNumber;
@ApiModelProperty(value = "收货方")
private String recipientName;
@ApiModelProperty(value = "委托方")
private String appointDriverEnterprise;
@ApiModelProperty(value = "收货方id")
private String recipientId;
@ApiModelProperty(value = "委托方id")
private String appointDriverEnterpriseId;
@ApiModelProperty(value = "数字物流平台用户Id")
private Long szwlUserId;
@ApiModelProperty("运费单价")
private BigDecimal freightUnitPrice;
@ApiModelProperty(value = "信息费")
private BigDecimal infoFee;
@ApiModelProperty(value = "信息费状态")
private BigDecimal infoFeeStatus;
@ApiModelProperty(value = "信息费应付单据号")
private String infoFeeDocumentNumber;
@ApiModelProperty(value = "车辆类型Id")
private String vehicleTypeId;
@ApiModelProperty(value = "承运人Id(订单为济南专线使用)")
private String carrier;
@ApiModelProperty(value = "第三方订单号")
private String thirdPartyOrderNumber;
@ApiModelProperty(value = "电子回单状态(0-无状态 1-未上传 2-已上传 3-已拒绝 4-已确认)")
private Integer receiptTotalStatus;
@ApiModelProperty(value = "已收运费")
private BigDecimal collectedFreight;
@ApiModelProperty(value = "未收运费")
private BigDecimal uncollectedFreight;
@ApiModelProperty(value = "订单结算状态:1未出账、2已出账、3部分结算、4已结算")
private Integer settlementStatus;
@ApiModelProperty(value = "订单运费结算时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date settlementTime;
@ApiModelProperty(value = "运单发票开具状态(0-未索取,1-已索取,2-已开票,3-部分索取)")
private Integer isInvoice;
@ApiModelProperty(value = "签收时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date signTime;
@ApiModelProperty(value = "创建人")
private String realCreateName;
@ApiModelProperty(value = "主运单单号")
private String mainOrderNumber;
@ApiModelProperty(value = "信息费账单号")
private String recordNumber;
@ApiModelProperty(value = "信息费收款方")
private String infoFeePayee;
@ApiModelProperty(value = "信息费收款方方式")
private Integer infoFeePayeeType;
@ApiModelProperty(value = "竞价状态 0-竞价中,1-已完成,2-已关闭")
private Integer biddingStatus;
@ApiModelProperty(value = "目的地")
private String destination;
@ApiModelProperty("运费")
private BigDecimal freightCharges;
@ApiModelProperty(value = "开票时间")
@Excel(name = "开票时间", width = 25, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date invoiceMakeTime;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员ID")
private String salesmanName;
@ApiModelProperty(value = "组织id")
private String orgId;
@ApiModelProperty(value = "所属组织")
@Excel(name = "所属组织", width = 15)
private String orgName;
@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 = "单据日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date documentDate;
@ApiModelProperty("组织ID")
private Long organizationId;
@ApiModelProperty("组织名称")
private String organizationName;
@ApiModelProperty("上级组织ID")
private Long topOrganizationId;
//订单审核相关
@ApiModelProperty("审核业务员ID")
private String auditSalesmanId;
@ApiModelProperty("审核业务员")
private String auditSalesmanName;
@ApiModelProperty("业务确认状态")
private Integer businessConfirmStatus;
@ApiModelProperty("业务审核状态")
private Integer businessAuditStatus;
@ApiModelProperty("确认意见")
private String opinion;
@ApiModelProperty("业务主管id")
private String businessManagerId;
@ApiModelProperty("业务主管名称")
private String businessManagerName;
@ApiModelProperty("审核意见")
private String auditOpinion;
@ApiModelProperty("费用科目明细")
private String tmsOrderAccountListJsonStr;
}
*/
@@ -37,5 +37,7 @@ public class UserDTO extends BaseVOEntity {
private Integer userStatus;
@ApiModelProperty(name = "业务类型:0.无状态,1.托运业务,2.承运业务,3.托运、承运业务,4.无业务,5.不确定业务默认为托运业务")
private Integer businessType;
@ApiModelProperty(name = "用户角色")
private String userRole;
}
@@ -169,6 +169,11 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory<UserServi
}
@Override
public AjaxResult<?> getShipperByUserId(Long userId) {
return AjaxResult.error("查询失败" + throwable.getMessage());
}
};
}
}
@@ -212,6 +212,14 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory<WlhyServiceFei
return res;
}
@Override
public R<TmsInvoiceListDetailsVO> selectInvoiceListById(String id) {
R<TmsInvoiceListDetailsVO> res = new R<>();
res.setMsg("获取发票信息失败"+cause.getMessage());
res.setCode(R.FAIL);
return res;
}
@Override
public AjaxResult payCallback(List<TmsPayCallbackDTO> tmsPayCallbackList) {
return AjaxResult.error(cause.getMessage());
@@ -515,6 +523,16 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory<WlhyServiceFei
public Result<?> queryById(String id) {
return null;
}
@Override
public AjaxResult add(TmsOrderAddDTO tmsOrderAddDTO) {
return AjaxResult.error(cause.getMessage());
}
@Override
public AjaxResult cancelIssueDocuments(String executeOrderId) {
return AjaxResult.error(cause.getMessage());
}
};
}
}
@@ -22,6 +22,11 @@ import java.util.List;
public class ReconciliationDTO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty("对账单表id")
private Long reconciliationId;
@@ -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;
}
@@ -558,4 +558,9 @@ public class TmsOrder implements Serializable {
@ApiModelProperty(value = "上级组织ID")
private Long topOrganizationId;
@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;
}
+2 -3
View File
@@ -24,12 +24,11 @@ spring:
config:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
# server-addr: 10.33.0.129:6010
#线上正式环境
server-addr: 10.102.192.5:6848
username: nacos
password: manhuoda@2023
# server-addr: 10.33.0.129:6010
#线上正式环境
# server-addr: 10.102.192.105:6848
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
file-extension: yml #默认properties
# 共享配置
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.List;
@@ -131,4 +132,18 @@ public class ExpenseAccountDO extends BaseVOEntity{
@ApiModelProperty(name = "创建订单是否固定显示 0-否 1-是")
private Integer fixedOrderDisplay;
@ApiModelProperty(name = "创建者姓名")
private String createByName;
@ApiModelProperty(value = "创建时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "更新者")
private Long updateBy;
@ApiModelProperty(name = "创建者姓名")
private String updateByName;
}
@@ -18,6 +18,7 @@ import com.mhd.common.core.constant.HttpStatus;
import com.mhd.common.core.domain.entity.R;
import com.sun.org.apache.bcel.internal.generic.NEW;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -62,6 +63,12 @@ public class ExpenseAccountApi extends BaseController{
logger.info("expenseAccountDTO 为 null,创建新对象");
}
ExpenseAccountDO expenseAccountDO = expenseAccountAssembler.toDO(expenseAccountDTO);
if(StringUtils.isBlank(expenseAccountDTO.getCreateByName())){
expenseAccountDO.setCreateByName(null);
}
if(StringUtils.isBlank(expenseAccountDTO.getUpdateByName())){
expenseAccountDO.setUpdateByName(null);
}
logger.info("转换后的 ExpenseAccountDO{}", expenseAccountDO);
startPage();
logger.info("分页参数已设置");
@@ -8,6 +8,7 @@ import com.mhd.basic.domain.serviceItemsManage.repository.todo.ServiceItemsManag
import com.mhd.basic.interfaces.assember.serviceItemsManage.ServiceItemsManageAssembler;
import com.mhd.basic.interfaces.dto.serviceItemsManage.ServiceItemsManageDTO;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -40,6 +41,12 @@ public class ServiceItemsManageApi extends BaseController{
{
//转换实体
ServiceItemsManageDO serviceItemsManageDO = serviceItemsManageAssembler.toDO(serviceItemsManageDTO);
if(StringUtils.isBlank(serviceItemsManageDTO.getCreateByName())){
serviceItemsManageDO.setCreateByName(null);
}
if(StringUtils.isBlank(serviceItemsManageDTO.getUpdateByName())){
serviceItemsManageDO.setUpdateByName(null);
}
startPage();
List<ServiceItemsManagePO> list = serviceItemsManageApplicationService.queryList(serviceItemsManageDO);
return getDataTable(list);
@@ -14,6 +14,7 @@ spring:
nacos:
discovery:
# server-addr: 127.0.0.1:8848
# server-addr: 10.33.0.129:6010
# 线上测试环境配置 容器名+端口号
server-addr: 10.102.192.5:6848
username: nacos
@@ -22,6 +23,7 @@ spring:
# server-addr: 10.102.192.105:6848
config:
# server-addr: 127.0.0.1:8848
# server-addr: 10.33.0.129:6010
# 线上测试环境配置 容器名+端口号
server-addr: 10.102.192.5:6848
username: nacos
@@ -196,16 +196,16 @@
<if test="expenseAccountDO.organizationId != null">
<!-- 如果设置了 organizationId,添加 organization_id 条件 -->
and a.organization_id = #{expenseAccountDO.organizationId}
and a.organization_name IS NOT NULL
and a.organization_name != ''
and LENGTH(TRIM(a.organization_name)) > 0
-- and a.organization_name IS NOT NULL
-- and a.organization_name != ''
-- and LENGTH(TRIM(a.organization_name)) > 0
</if>
<if test="expenseAccountDO.topOrganizationId != null and expenseAccountDO.organizationId == null">
<!-- 如果设置了 topOrganizationId 但没有设置 organizationId,添加 top_organization_id 条件 -->
and a.top_organization_id = #{expenseAccountDO.topOrganizationId}
and a.organization_name IS NOT NULL
and a.organization_name != ''
and LENGTH(TRIM(a.organization_name)) > 0
-- and a.organization_name IS NOT NULL
-- and a.organization_name != ''
-- and LENGTH(TRIM(a.organization_name)) > 0
</if>
<if test="expenseAccountDO.organizationName != null and expenseAccountDO.organizationName != ''">
and a.organization_name like concat('%', #{expenseAccountDO.organizationName}, '%')
@@ -8,36 +8,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectServiceItemsManagePo1">
<where>
<!-- 删除标记:0-无状态,1-正常,2-已删除,查询时只查询正常的数据 -->
<choose>
<when test="delFlag != null">
and del_flag = #{delFlag}
</when>
<otherwise>
and del_flag = 1
</otherwise>
</choose>
<if test="createByName != null and createByName != ''">
and create_by_name like concat('%', #{createByName}, '%')
</if>
<if test="updateByName != null and updateByName != ''">
and update_by_name like concat('%', #{updateByName}, '%')
</if>
<!-- &lt;!&ndash; 删除标记:0-无状态,1-正常,2-已删除,查询时只查询正常的数据 &ndash;&gt;-->
<!-- <choose>-->
<!-- <when test="delFlag != null">-->
<!-- and del_flag = #{delFlag}-->
<!-- </when>-->
<!-- <otherwise>-->
<!-- and del_flag = 1-->
<!-- </otherwise>-->
<!-- </choose>-->
<!-- <if test="createByName != null and createByName != ''">-->
<!-- and create_by_name like concat('%', #{createByName}, '%')-->
<!-- </if>-->
<!-- <if test="updateByName != null and updateByName != ''">-->
<!-- and update_by_name like concat('%', #{updateByName}, '%')-->
<!-- </if>-->
<!-- 数据权限:南光组织(organizationId=2827)查全部,其他组织查自己 -->
<!-- 如果 organizationId 和 topOrganizationId 都为 null,表示查询所有组织的数据(不添加组织过滤条件) -->
<if test="organizationId != null">
<!-- 如果设置了 organizationId,添加 organization_id 条件 -->
and organization_id = #{organizationId}
and organization_name IS NOT NULL
and organization_name != ''
and LENGTH(TRIM(organization_name)) > 0
-- and organization_name IS NOT NULL
-- and organization_name != ''
-- and LENGTH(TRIM(organization_name)) > 0
</if>
<if test="topOrganizationId != null and organizationId == null">
<!-- 如果设置了 topOrganizationId 但没有设置 organizationId,添加 top_organization_id 条件 -->
and top_organization_id = #{topOrganizationId}
and organization_name IS NOT NULL
and organization_name != ''
and LENGTH(TRIM(organization_name)) > 0
-- and organization_name IS NOT NULL
-- and organization_name != ''
-- and LENGTH(TRIM(organization_name)) > 0
</if>
<if test="organizationName != null and organizationName != ''">
and organization_name like concat('%', #{organizationName}, '%')
@@ -86,6 +86,7 @@ public class RoleApplicationService {
// 先保存前端传递的 organizationId(如果存在)
Long frontendOrganizationId = roleDo.getOrganizationId();
log.info("角色查询 - 初始 roleDo.getOrganizationId(): {}", frontendOrganizationId);
// 获取登录用户信息
Long loginUserOrganizationId = null;
@@ -94,6 +95,12 @@ public class RoleApplicationService {
loginUserOrganizationId = userPo.getOrganizationId();
topOrganizationId = userPo.getTopOrganizationId();
}
log.info("角色查询 - 当前登录用户组织ID: {}", loginUserOrganizationId);
// 先保存前端传递的 organizationId(如果存在)
// 因为后续的 BeanUtils.copyProperties 可能会覆盖掉前端传递的值
Long savedFrontendOrganizationId = frontendOrganizationId;
log.info("角色查询 - 保存的前端 organizationId: {}", savedFrontendOrganizationId);
if (userPo.getUserAccountType() != null && userPo.getUserAccountType() == 5){
roleDo.setCreateBy(userPo.getCreateBy());
@@ -102,60 +109,62 @@ public class RoleApplicationService {
userDataPermissionQueryDTO.setPermissionMenuId(roleDo.getPermissionMenuId());
userDataPermissionQueryDTO = userDataPermissionApplicationService.getUserDataPermissionQueryDTO(userDataPermissionQueryDTO);
// 在复制属性之前,先保存前端传递的 organizationId(如果存在)
// 因为 BeanUtils.copyProperties 可能会覆盖掉前端传递的值
Long savedFrontendOrganizationId = frontendOrganizationId;
BeanUtils.copyProperties(userDataPermissionQueryDTO, roleDo, IgnoreNullUtil.getNullPropertyNames(userDataPermissionQueryDTO));
UserPo loginUserPo = loginUser.getUserPo();
log.info("角色查询 - BeanUtils.copyProperties 后 roleDo.getOrganizationId(): {}", roleDo.getOrganizationId());
}
// 重新获取前端传递的 organizationId(优先使用前端传递的值)
// 对于南光组织,如果前端传递了 organizationId,必须使用前端传递的值
Long currentFrontendOrganizationId = savedFrontendOrganizationId != null ? savedFrontendOrganizationId : roleDo.getOrganizationId();
UserPo loginUserPo = loginUser.getUserPo();
// 数据权限:查询权限根据 organizationId 来设置,与其他模块保持一致
// organizationId等于2827时,为南光组织,查所有;其他组织查自己
if (loginUserOrganizationId != null && loginUserOrganizationId.equals(2827L)) {
// 南光组织(organizationId=2827):可以查询所有组织的数据
// 如果前端传递了 organizationId(包括2827,使用前端传递的值进行过滤
// 如果前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据
if (currentFrontendOrganizationId != null) {
// 前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤
roleDo.setOrganizationId(currentFrontendOrganizationId);
roleDo.setTopOrganizationId(null);
} else {
// 前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据
roleDo.setOrganizationId(null);
roleDo.setTopOrganizationId(null);
}
if (!Strings.isNullOrEmpty(loginUserPo.getRoleCode()) && RoleEnum.SUPER_ADMIN.getCode().equals(loginUserPo.getRoleCode())) {
//角色等级:0-无状态,1-内置角色,2-组织角色
//roleDo.setRoleGrade(1);
} else {
//roleDo.setRoleGrade(2);
}
// 数据权限:查询权限根据 organizationId 来设置,与其他模块保持一致
// organizationId等于2827时,为南光组织,查所有;其他组织查自己
if (loginUserOrganizationId != null && loginUserOrganizationId.equals(2827L)) {
// 南光组织(organizationId=2827):可以查询所有组织的数据
// 如果前端传递了 organizationId 且不等于当前登录用户的组织ID,使用前端传递的值进行过滤
// 如果前端没有传递 organizationId或者传递的值等于当前登录用户的组织ID,清空组织过滤条件,查询所有组织的数据
log.info("角色查询 - 南光组织,savedFrontendOrganizationId: {}", savedFrontendOrganizationId);
if (savedFrontendOrganizationId != null && !savedFrontendOrganizationId.equals(loginUserOrganizationId)) {
// 前端传递了其他组织的 organizationId(不等于2827),使用前端传递的值进行过滤
log.info("角色查询 - 南光组织:使用前端传递的其他组织 organizationId: {}", savedFrontendOrganizationId);
roleDo.setOrganizationId(savedFrontendOrganizationId);
roleDo.setTopOrganizationId(null);
} else {
// 前端没有传递 organizationId,或者传递的值等于当前登录用户的组织ID(2827),
// 清空组织过滤条件,查询所有组织的数据
// 注意:这里必须清空 organizationId,不能使用 roleDo.getOrganizationId()
// 因为 roleDo.getOrganizationId() 可能被 BeanUtils.copyProperties 从其他地方复制过来
log.info("角色查询 - 南光组织:前端未传递 organizationId 或传递的值等于当前登录用户组织ID,清空组织过滤条件,查询所有组织的数据");
roleDo.setOrganizationId(null);
roleDo.setTopOrganizationId(null);
}
if (!Strings.isNullOrEmpty(loginUserPo.getRoleCode()) && RoleEnum.SUPER_ADMIN.getCode().equals(loginUserPo.getRoleCode())) {
//角色等级:0-无状态,1-内置角色,2-组织角色
//roleDo.setRoleGrade(1);
} else {
// 其他组织:设置organizationId,只查询当前组织的数据
// 其他组织只能查询自己组织的数据,不能查询其他组织的数据
if (currentFrontendOrganizationId != null) {
// 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致
if (!currentFrontendOrganizationId.equals(loginUserOrganizationId)) {
// 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询
log.warn("角色查询 - 前端传递的组织ID {} 与当前登录用户的组织ID {} 不一致,使用当前登录用户的组织ID进行过滤",
currentFrontendOrganizationId, loginUserOrganizationId);
roleDo.setOrganizationId(loginUserOrganizationId);
} else {
// 前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值
roleDo.setOrganizationId(currentFrontendOrganizationId);
}
roleDo.setTopOrganizationId(topOrganizationId);
} else {
// 前端没有传递 organizationId,使用当前登录用户的组织ID
roleDo.setOrganizationId(loginUserOrganizationId);
roleDo.setTopOrganizationId(topOrganizationId);
}
//roleDo.setRoleGrade(2);
}
} else {
// 其他组织:设置organizationId,只查询当前组织的数据
// 其他组织只能查询自己组织的数据,不能查询其他组织的数据
// 重新获取前端传递的 organizationId(优先使用前端传递的值)
Long currentFrontendOrganizationId = savedFrontendOrganizationId != null ? savedFrontendOrganizationId : roleDo.getOrganizationId();
if (currentFrontendOrganizationId != null) {
// 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致
if (!currentFrontendOrganizationId.equals(loginUserOrganizationId)) {
// 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询
log.warn("角色查询 - 前端传递的组织ID {} 与当前登录用户的组织ID {} 不一致,使用当前登录用户的组织ID进行过滤",
currentFrontendOrganizationId, loginUserOrganizationId);
roleDo.setOrganizationId(loginUserOrganizationId);
} else {
// 前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值
roleDo.setOrganizationId(currentFrontendOrganizationId);
}
roleDo.setTopOrganizationId(topOrganizationId);
} else {
// 前端没有传递 organizationId,使用当前登录用户的组织ID
roleDo.setOrganizationId(loginUserOrganizationId);
roleDo.setTopOrganizationId(topOrganizationId);
}
//roleDo.setRoleGrade(2);
}
return roleDomainService.selecRolePoList(roleDo);
}
@@ -167,7 +176,9 @@ public class RoleApplicationService {
*/
@DataPermissions(cacheName = "wlhyRole_createBy")
public List<RolePO> getUserRolelist(RoleDo roleDo) {//获取登录人信息
return roleDomainService.selecRolePoList(roleDo);
// 调用应用服务层的方法,包含数据权限控制逻辑
// 当前登录用户组织ID为2827时查询全部组织信息,其他组织只查自己
return selecRolePoList(roleDo);
}
public List<RolePO> queryList(RoleDo roleDo) {
@@ -1161,4 +1161,20 @@ public class UserShipperApplicationService {
public com.mhd.common.core.domain.po.UserShipperPo getShipperSummaryData(Long userId) {
return userShipperDomainService.getShipperSummaryData(userId);
}
/**
* 根据用户ID查询货主信息
*
* @param userId 用户ID
* @return 货主信息
*/
public UserShipperPo getShipperByUserId(Long userId) {
// 参数校验
if (userId == null || userId <= 0) {
throw new IllegalArgumentException("用户ID不能为空");
}
// 根据userId查询货主信息
return userShipperDomainService.selectByUserId(userId);
}
}
@@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
@@ -57,9 +58,20 @@ public class RoleAPI extends BaseController {
@Log(title = "职务/角色管理-查询", description ="查询角色列表",businessType = BusinessType.INQUIRE)
@ApiOperation("查询角色列表-分页")
@GetMapping("/getUserRolelist")
public TableDataInfo getUserRolelist(RoleDTO roleDTO) {
public TableDataInfo getUserRolelist(RoleDTO roleDTO, HttpServletRequest request) {
// 检查前端是否明确传递了 organizationId 参数
// 如果前端没有传递清空 roleDTO 中的 organizationId避免从其他地方自动设置的值影响查询
String organizationIdParam = request.getParameter("organizationId");
log.info("角色查询接口 - 前端传递的 organizationId 参数: {}", organizationIdParam);
if (organizationIdParam == null || organizationIdParam.isEmpty()) {
log.info("角色查询接口 - 前端未传递 organizationId,清空 roleDTO.organizationId");
roleDTO.setOrganizationId(null);
} else {
log.info("角色查询接口 - 前端传递了 organizationId: {}", organizationIdParam);
}
//转换实体
RoleDo roleDo = roleAssember.toRoleDo(roleDTO);
log.info("角色查询接口 - 转换后 roleDo.getOrganizationId(): {}", roleDo.getOrganizationId());
startPage();
List<RolePO> list = roleApplicationService.getUserRolelist(roleDo);
return getDataTable(list);
@@ -205,4 +205,34 @@ public class UserShipperAPI extends BaseController {
public AjaxResult<?> getShipperSummaryData(@PathVariable Long userId) {
return AjaxResult.success(userShipperApplicationService.getShipperSummaryData(userId));
}
/**
* 根据用户ID查询货主信息
*
* @param userId 用户ID
* @return 货主信息
*/
@ApiOperation("根据用户ID查询货主信息")
@GetMapping("/getShipperByUserId/{userId}")
public AjaxResult<?> getShipperByUserId(@PathVariable("userId") Long userId) {
try {
// 参数校验
if (userId == null || userId <= 0) {
return AjaxResult.error("用户ID不能为空");
}
// 调用服务层方法查询货主信息
UserShipperPo userShipperPo = userShipperApplicationService.getShipperByUserId(userId);
if (userShipperPo != null) {
return AjaxResult.success(userShipperPo);
} else {
return AjaxResult.error("未找到对应的货主信息");
}
} catch (Exception e) {
log.error("根据用户ID查询货主信息异常,userId:{}", userId, e);
return AjaxResult.error("查询货主信息失败:" + e.getMessage());
}
}
}
@@ -17,4 +17,10 @@ public class NonePagingListVO {
@ApiModelProperty(value = "车队名称")
private String motorcadeName;
@ApiModelProperty(value = "组织ID")
private Long organizationId;
@ApiModelProperty(value = "组织名称")
private String organizationName;
}
@@ -20,19 +20,15 @@ spring:
discovery:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
server-addr: 10.33.0.129:6010
#线上正式环境
# server-addr: 10.102.192.5:6848
# username: nacos
# password: manhuoda@2023
# server-addr: 10.33.0.129:6010
server-addr: 10.102.192.5:6848
username: nacos
password: manhuoda@2023
config:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
server-addr: 10.33.0.129:6010
#线上正式环境
# server-addr: 10.102.192.5:6848
# username: nacos
# password: manhuoda@2023
# server-addr: 10.33.0.129:6010
server-addr: 10.102.192.5:6848
username: nacos
password: manhuoda@2023
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
@@ -380,31 +380,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
group by u.user_id
</select>
<select id="queryNonePagingList" resultType="com.mhd.user.domain.motorcade.repository.po.MotorcadePo">
SELECT
SELECT DISTINCT
m.motorcade_id,
m.motorcade_name
m.motorcade_name,
m.organization_id,
m.organization_name
FROM
motorcade m
LEFT JOIN
INNER JOIN
motorcade_driver d
ON m.motorcade_id = d.motorcade_id and d.del_flag = 1
INNER JOIN
user_driver ud
ON d.user_id = ud.user_id and ud.del_flag = 1
LEFT JOIN
user_driver_enterprise ude
ON ud.user_id = ude.user_id and ude.del_flag = 1
<where>
m.del_flag = 1
<!-- 数据权限:南光组织(organizationId=2827)查全部,其他组织查自己 -->
<if test="organizationId != null">
<!-- 如果设置了 organizationId,添加 organization_id 条件 -->
and m.organization_id = #{organizationId}
and m.organization_name IS NOT NULL
</if>
<if test="topOrganizationId != null">
<!-- 如果设置了 topOrganizationId,添加 top_organization_id 条件 -->
and m.top_organization_id = #{topOrganizationId}
<if test="organizationId == null">
<!-- 如果没有设置 organizationId,添加 organization_name IS NOT NULL 条件 -->
and m.organization_name IS NOT NULL
</if>
</if>
</where>
ORDER BY m.motorcade_id
</select>
</mapper>
@@ -122,13 +122,13 @@
</if>
<if test="organizationId !=null">
and a.organization_id = #{organizationId}
and a.organization_name IS NOT NULL
-- and a.organization_name IS NOT NULL
</if>
<if test="topOrganizationId !=null">
and a.top_organization_id = #{topOrganizationId}
<if test="organizationId == null">
and a.organization_name IS NOT NULL
</if>
<!-- <if test="organizationId == null">-->
<!-- and a.organization_name IS NOT NULL-->
<!-- </if>-->
</if>
<if test="organizationName != null and organizationName != ''">
and a.organization_name like concat('%' , #{organizationName} , '%')
@@ -185,27 +185,13 @@
ude.driver_corp_legal_name,
ude.driver_corp_name,
ude.driver_corp_idcard_number,
r.roleName,
b.role_name AS roleName,
dvb.vehicle_id,
wlhydriver.id as wlhydriverId,
WM_CONCAT(DISTINCT dvb.vehicle_license_plate_number ) AS vehicleLicensePlateNumber,
WM_CONCAT(DISTINCT m.motorcade_name ) AS driverTeamName
FROM
"USER" b
LEFT JOIN (
SELECT
user_id,
LISTAGG(DISTINCT r.role_name, '&amp;') WITHIN GROUP(ORDER BY r.role_name) AS roleName
FROM
role r
LEFT JOIN user_role ur ON r.role_id = ur.role_id
AND ur.del_flag = 1
WHERE
r.del_flag = 1
AND role_code IN ( 'driver', 'carrier', 'captain' )
GROUP BY
user_id
) r ON r.user_id = b.user_id
LEFT JOIN user_driver a ON a.user_id = b.user_id
LEFT JOIN NGWL_TEST_WLHY.sys_user wlhyuser ON wlhyuser.szwl_user_id = b.user_id
LEFT JOIN NGWL_TEST_WLHY.tms_driver wlhydriver ON wlhydriver.driver_id = wlhyuser.id
@@ -220,7 +206,7 @@
left join motorcade m on md.motorcade_id = m.motorcade_id and m.del_flag = 1
LEFT JOIN motorcade mo ON a.driver_id = mo.motorcade_header_id
AND m.del_flag = 1
AND mo.del_flag = 1
left join motorcade_driver mdr on mo.motorcade_id = mdr.motorcade_id and mdr.del_flag = 1
WHERE
b.del_flag = 1
@@ -353,12 +339,6 @@
select count(1)
from ( select b.user_id
from "USER" b
left join (select user_id, WM_CONCAT(r.role_name separator '&amp;') roleName
from role r
left join user_role ur on r.role_id = ur.role_id and ur.del_flag = 1
where r.del_flag = 1
and role_code in ('driver', 'carrier', 'captain', 'must')
group by user_id) r on r.user_id = b.user_id
left join user_driver a on a.user_id = b.user_id
left join user_driver_enterprise ude on b.user_id = ude.user_id and ude.driver_type = 1
left join user_driver_enterprise ud on b.user_id = ud.user_id and ud.driver_type = 2
@@ -558,7 +538,7 @@
</if>
/*角色*/
<if test="userDriverDO.roleName != null and userDriverDO.roleName != ''">
AND r.roleName like concat('%', #{userDriverDO.roleName}, '%')
AND b.role_name like concat('%', #{userDriverDO.roleName}, '%')
</if>
/*车牌号*/
<if test="userDriverDO.vehicleLicensePlateNumber != null and userDriverDO.vehicleLicensePlateNumber != ''">
@@ -42,6 +42,8 @@
a.shipper_enterprise_fill_time,
a.shipper_fill_remark,
a.shipper_enterprise_fill_remark,
a.monthly_settlement_flag,
a.is_auto_audit_order,
b.user_phone,
b.user_name,
b.role_name,
@@ -6,6 +6,8 @@ import com.aliyun.dingtalkworkflow_1_0.models.StartProcessInstanceResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.linke.finance.domain.businessDocument.entity.BusinessDocument;
import com.linke.finance.domain.businessDocument.service.BusinessDocumentDomainService;
import com.linke.finance.domain.reconciliation.entity.Reconciliation;
@@ -196,6 +198,15 @@ public class ReconciliationApplicationService {
.lambda().eq(ReconciliationAccount::getReconciliationId,reconciliationPO.getReconciliationId()).eq(ReconciliationAccount::getDelFlag,1));
if(ObjectUtil.isNotNull(reconciliationAccountList)&&reconciliationAccountList.size()>0){
reconciliationPO.setReconciliationAccountDTOList(reconciliationAccountList);
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = null;
try {
jsonString = objectMapper.writeValueAsString(reconciliationAccountList);
reconciliationPO.setReconciliationAccountDTOListJsonStr(jsonString);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
@@ -288,6 +299,16 @@ public class ReconciliationApplicationService {
}
});
LoginUser loginUser = SecurityUtils.getLoginUser();
// 如果前端传递了创建时间则使用该时间否则使用当前时间
Date specifiedCreateTime = reconciliationDO.getCreateTime();
if (specifiedCreateTime != null) {
reconciliationDO.setCreateTime(specifiedCreateTime);
} else {
// 没有指定创建时间时使用当前时间
reconciliationDO.setCreateTime(new Date());
}
reconciliationDO = reconciliationDomainService.insert(reconciliationDO);
if(reconciliationDO==null){
throw new ServiceException("订单出账-生成应收账单失败!");
@@ -760,4 +781,14 @@ public class ReconciliationApplicationService {
{
return reconciliationDomainService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber);
}
/**
* 根据订单ID列表查询RECONCILIATION_ORDER_DETAIL表中这些订单创建最早的日期
*
* @param orderIds 订单ID列表
* @return 最早创建日期
*/
public Date getEarliestCreateTimeByOrderIdList(List<String> orderIds) {
return reconciliationDomainService.getEarliestCreateTimeByOrderIdList(orderIds);
}
}
@@ -29,4 +29,9 @@ public interface ReconciliationMapper extends BaseMapper<Reconciliation>
Boolean delReconciliationByInnerNumber(@Param("innerNumber") String innerNumber);
Boolean delReconciliationDetailByInnerNumber(@Param("reconciliationId") Long reconciliationId);
/**
* 插入对账单并使用传入的createTime值
*/
void insertWithCreateTime(Reconciliation reconciliation);
}
@@ -24,6 +24,9 @@ import com.linke.finance.domain.reconciliation.repository.po.ReconciliationPO;
import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO;
import com.linke.finance.domain.reconciliationAccount.entity.ReconciliationAccount;
import com.linke.finance.domain.reconciliationAccount.repository.mapper.ReconciliationAccountMapper;
import com.linke.finance.domain.tmsReceipt.entity.TmsReceipt;
import com.linke.finance.domain.tmsReceipt.repository.facade.ITmsReceiptService;
import com.linke.finance.domain.tmsReceipt.repository.mapper.TmsReceiptMapper;
import com.mhd.common.core.domain.dto.ReconciliationDTO;
import com.mhd.common.core.domain.dto.nc.*;
import com.mhd.common.core.domain.entity.R;
@@ -40,6 +43,8 @@ import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.WlhyServiceFeign;
import com.mhd.system.api.domain.TmsInvoiceList;
import com.mhd.system.api.domain.TmsInvoiceListDetailsVO;
import com.mhd.system.api.domain.TmsTransportNote;
import com.mhd.system.api.model.LoginUser;
import org.apache.http.client.methods.CloseableHttpResponse;
@@ -100,11 +105,14 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
private ApprovalDocumentDomainService approvalDocumentDomainService;
@Autowired
private ReconciliationAccountMapper reconciliationAccountMapper;
@Autowired
private TmsReceiptMapper tmsReceiptMapper;
//nc测试环境地址
private String url="http://10.0.0.212/service/XChangeServlet?account=NKNC&groupcode=CNK";
//nc正式环境地址
//private String url="http://10.0.0.202/service/XChangeServlet?account=NKNC&groupcode=CNK";
private String zsurl="http://10.0.0.202/service/XChangeServlet?account=NKNC&groupcode=CNK";
/**
* 查询对账单列表
*/
@@ -121,7 +129,9 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
public ReconciliationDO insert(ReconciliationDO reconciliationDO) {
Reconciliation reconciliation = new Reconciliation();
BeanUtils.copyProperties(reconciliationDO,reconciliation);
this.save(reconciliation);
// 创建时间减去8小时
reconciliation.setCreateTime(new Date(reconciliation.getCreateTime().getTime() - 8 * 60 * 60 * 1000));
reconciliationMapper.insertWithCreateTime(reconciliation);
reconciliationDO.setReconciliationId(reconciliation.getReconciliationId());
return reconciliationDO;
}
@@ -410,11 +420,6 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
throw new ServiceException("该记录已同步,不需要再次同步");
}
/* if(reconciliation.getIsInvoice()!=2){
throw new ServiceException("该记录还未开票,不允许同步");
}*/
try {
Date date = reconciliation.getCreateTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -426,12 +431,23 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
reconciliationDTO.setInnerNumber(reconciliation.getInnerNumber());
R<List<TmsOrder>> result=wlhyServiceFeign.getOrderListByReconciliation(reconciliationDTO);
String makerCodeNc="";
if(reconciliation.getOrganizationName().contains("")){
if(reconciliation.getOrganizationName().contains("")){
if(result.getCode()==200){
String invoiceNumber="";
R<TmsInvoiceListDetailsVO> ajaxResult2=wlhyServiceFeign.selectInvoiceListById(reconciliation.getInvoiceId());
if(ajaxResult2.getCode()==200){
TmsInvoiceListDetailsVO tmsInvoiceListDetailsVO= ajaxResult2.getData();
if(ObjectUtil.isNotNull(tmsInvoiceListDetailsVO)) {
invoiceNumber=tmsInvoiceListDetailsVO.getTmsMakeOutInvoices().get(0).getInvoiceNumber();
}
}
List<TmsOrder> list=result.getData();
if(ObjectUtil.isNotNull(list)){
for(TmsOrder tmsOrder:list){
R<TmsTransportNote> ajaxResult1=wlhyServiceFeign.selectByOrderNum(tmsOrder.getGoodsNumber());
date=tmsOrder.getDocumentDate();
dateString = sdf.format(date);
/* R<TmsTransportNote> ajaxResult1=wlhyServiceFeign.selectByOrderNum(tmsOrder.getGoodsNumber());
if(ajaxResult1.getCode()==200){
TmsTransportNote tmsTransportNote= ajaxResult1.getData();
if(ObjectUtil.isNotNull(tmsTransportNote.getIsPaper())){
@@ -443,7 +459,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
}else{
throw new ServiceException("运单还没签收, 先签收");
}
}
}*/
/* if(null==reconciliation.getSettlementPartyId()){
throw new ServiceException("没有结算方,请核对");
}*/
@@ -480,7 +496,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
item.setPrice(String.valueOf(tmsOrder.getDeliveryFreight()));
item.setTaxprice(String.valueOf(tmsOrder.getDeliveryFreight()));
item.setDef75("T10");
item.setInvoiceno("");
item.setInvoiceno(invoiceNumber);
ysitemList.add(item);
}
Ysbodys bodys=new Ysbodys();
@@ -489,7 +505,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
billhead.setPk_group("CNK");
billhead.setPk_org("NG0401");
billhead.setSett_org("NG0401");
billhead.setCreationtime(dateString);
billhead.setBilldate(dateString);
billhead.setCreator(makerCodeNc);
billhead.setPk_billtype("F0");
billhead.setPk_tradetype("D0");
@@ -497,7 +513,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
billhead.setIsinit("N");
date=reconciliation.getCreateTime();
dateString = sdf.format(date);
billhead.setBilldate(dateString);
billhead.setCreationtime(dateString);
billhead.setSyscode("0");
billhead.setBillno("");
billhead.setDef59("");
@@ -548,7 +564,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
reconciliation.setNcId("ys"+String.valueOf(reconciliation.getReconciliationId()));
//reconciliationMapper.updateById(reconciliation);
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
HttpPost httpPost = new HttpPost(zsurl);
StringEntity postingString = new StringEntity(xmlString, "UTF-8");
httpPost.setEntity(postingString);
httpPost.setHeader("Content-type", "application/xml");
@@ -605,6 +621,9 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
}
}
}else if(reconciliation.getOrganizationName().contains("通宇")){
if (reconciliation.getIsInvoice() != 2) {
throw new ServiceException("该记录还未开票,不允许同步");
}
if(result.getCode()==200){
List<TmsOrder> list=result.getData();
if(ObjectUtil.isNotNull(list)){
@@ -613,6 +632,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
String customerCodeNc=list.get(0).getCustomerCodeNc();
String appointShipper=list.get(0).getAppointShipper();
String settlementCurrency=list.get(0).getSettlementCurrency();
makerCodeNc=list.get(0).getMakerCodeNc();
String goodsNumber=list.get(0).getGoodsName();
for(TmsOrder tmsOrder:list){
R<TmsTransportNote> ajaxResult1=wlhyServiceFeign.selectByOrderNum(tmsOrder.getGoodsNumber());
@@ -634,47 +654,59 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
}
}
String invoiceNumber=reconciliation.getApplyNumber();
R<TmsInvoiceListDetailsVO> ajaxResult2=wlhyServiceFeign.selectInvoiceListById(reconciliation.getInvoiceId());
if(ajaxResult2.getCode()==200){
TmsInvoiceListDetailsVO tmsInvoiceListDetailsVO= ajaxResult2.getData();
if(ObjectUtil.isNotNull(tmsInvoiceListDetailsVO)) {
invoiceNumber=tmsInvoiceListDetailsVO.getTmsMakeOutInvoices().get(0).getInvoiceNumber();
}
}
List<ReconciliationAccount> reconciliationAccountList=reconciliationAccountMapper.selectList(new QueryWrapper<ReconciliationAccount>().lambda()
.eq(ReconciliationAccount::getReconciliationId,businessDocumentDetaliId)
.eq(ReconciliationAccount::getDelFlag,0));
.eq(ReconciliationAccount::getDelFlag,1));
if (ObjectUtil.isNotNull(reconciliationAccountList)&&reconciliationAccountList.size()>0){
for (ReconciliationAccount reconciliationAccount:reconciliationAccountList){
Ysitem item=new Ysitem();
item.setSo_deptid("NG0408");
item.setPk_deptid("NG0408");
item.setPk_psndoc(salesmanCodeNc);
item.setCustomer(customerCodeNc);
item.setObjtype("0");
item.setDirection("1");
item.setScomment("业务部:应收"+appointShipper+reconciliationAccount.getSubjectName()+reconciliation.getApplyNumber());
// item.setPk_currtype("CNY");
item.setPk_currtype(settlementCurrency);
item.setPurchaseorder("");
item.setTaxrate("0");
item.setQuantity_de("0");
item.setMoney_de(String.valueOf(reconciliationAccount.getAmount()));
item.setMoney_bal(String.valueOf(reconciliationAccount.getAmount()));
if(reconciliationAccount.getRate().compareTo(BigDecimal.ZERO)>0){
BigDecimal tax_de=reconciliationAccount.getAmount().multiply(reconciliationAccount.getRate().divide(BigDecimal.valueOf(100))).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal notax_de=reconciliationAccount.getAmount().subtract(tax_de);
item.setNotax_de(String.valueOf(notax_de));
item.setLocal_tax_de(String.valueOf(notax_de));
item.setTax_de(String.valueOf(tax_de));
}else{
BigDecimal tax_de=BigDecimal.ZERO;
BigDecimal notax_de=reconciliationAccount.getAmount().subtract(tax_de);
item.setNotax_de(String.valueOf(notax_de));
item.setLocal_tax_de(String.valueOf(notax_de));
item.setTax_de(String.valueOf(tax_de));
if(reconciliationAccount.getAmount().compareTo(BigDecimal.ZERO)>0){
Ysitem item=new Ysitem();
item.setSo_deptid("NG0408");
item.setPk_deptid("NG0408");
item.setPk_psndoc(salesmanCodeNc);
item.setCustomer(customerCodeNc);
item.setObjtype("0");
item.setDirection("1");
item.setScomment("业务部:应收"+appointShipper+reconciliationAccount.getSubjectName()+invoiceNumber);
// item.setPk_currtype("CNY");
item.setPk_currtype(settlementCurrency);
item.setPurchaseorder("");
item.setTaxrate("0");
item.setQuantity_de("0");
item.setMoney_de(String.valueOf(reconciliationAccount.getAmount()));
item.setMoney_bal(String.valueOf(reconciliationAccount.getAmount()));
if(reconciliationAccount.getRate().compareTo(BigDecimal.ZERO)>0){
BigDecimal tax_de=reconciliationAccount.getAmount().multiply(reconciliationAccount.getRate().divide(BigDecimal.valueOf(100))).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal notax_de=reconciliationAccount.getAmount().subtract(tax_de);
item.setNotax_de(String.valueOf(notax_de));
item.setLocal_tax_de(String.valueOf(notax_de));
item.setTax_de(String.valueOf(tax_de));
}else{
BigDecimal tax_de=BigDecimal.ZERO;
BigDecimal notax_de=reconciliationAccount.getAmount().subtract(tax_de);
item.setNotax_de(String.valueOf(notax_de));
item.setLocal_tax_de(String.valueOf(notax_de));
item.setTax_de(String.valueOf(tax_de));
}
item.setPrice(String.valueOf(reconciliationAccount.getAmount()));
item.setTaxprice(String.valueOf(reconciliationAccount.getAmount()));
item.setDef75("T10");
item.setInvoiceno(invoiceNumber);
ysitemList.add(item);
}
item.setPrice(String.valueOf(reconciliationAccount.getAmount()));
item.setTaxprice(String.valueOf(reconciliationAccount.getAmount()));
item.setDef75("T10");
item.setInvoiceno("");
ysitemList.add(item);
}
}else{
throw new ServiceException("未查询到账单的费用科目信息, 请核对");
}
Ysbodys bodys=new Ysbodys();
@@ -694,7 +726,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
billhead.setBilldate(dateString);
billhead.setSyscode("0");
billhead.setBillno("");
billhead.setDef59("");
billhead.setDef59(list.get(0).getContractNo());
billhead.setSrc_syscode("0");
billhead.setBillstatus("0");
billhead.setBillmaker(makerCodeNc);
@@ -799,6 +831,8 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
}
}
}
} catch (JAXBException e) {
e.printStackTrace();
}
@@ -836,7 +870,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
throw new ServiceException("没有结算方,请核对");
}*/
String makerCodeNc="";
if(reconciliation.getOrganizationName().contains("")){
if(reconciliation.getOrganizationName().contains("")){
R<List<TmsOrder>> result=wlhyServiceFeign.getOrderListByReconciliation(reconciliationDTO);
if(result.getCode()==200){
List<TmsOrder> list=result.getData();
@@ -937,7 +971,7 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
reconciliation.setSkNcId("sk"+String.valueOf(reconciliation.getReconciliationId()));
//reconciliationMapper.updateById(reconciliation);
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
HttpPost httpPost = new HttpPost(zsurl);
StringEntity postingString = new StringEntity(xmlString, "UTF-8");
httpPost.setEntity(postingString);
httpPost.setHeader("Content-type", "application/xml");
@@ -996,10 +1030,30 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
if(result.getCode()==200){
List<TmsOrder> list=result.getData();
if(ObjectUtil.isNotNull(list)){
for(TmsOrder tmsOrder:list){
String salesmanCodeNc=list.get(0).getSalesmanCodeNc();
String customerCodeNc=list.get(0).getCustomerCodeNc();
String appointShipper=list.get(0).getAppointShipper();
String settlementCurrency=list.get(0).getSettlementCurrency();
makerCodeNc="luoyx";
SKitem item=new SKitem();
item.setSo_deptid("NG0408");
item.setPk_deptid("NG0408");
item.setCheckdirection("ar");
item.setPk_psndoc(salesmanCodeNc);
item.setCustomer(customerCodeNc);
item.setPurchaseorder("");
item.setObjtype("0");
item.setDirection("1");
item.setScomment("业务部:"+appointShipper+"物流费");
item.setPk_currtype(settlementCurrency);
item.setMoney_cr(String.valueOf(reconciliation.getCollectionAmount()));
item.setMoney_bal(String.valueOf(reconciliation.getCollectionAmount()));
ysitemList.add(item);
/* for(TmsOrder tmsOrder:list){
makerCodeNc=tmsOrder.getMakerCodeNc();
makerCodeNc="luoyx";
SKitem item=new SKitem();
item.setSo_deptid("NG0408");
item.setPk_deptid("NG0408");
@@ -1009,12 +1063,12 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
item.setPurchaseorder(tmsOrder.getGoodsNumber());
item.setObjtype("0");
item.setDirection("1");
item.setScomment(tmsOrder.getAppointShipper());
item.setScomment("业务部:"+tmsOrder.getAppointShipper()+"物流费");
item.setPk_currtype(tmsOrder.getSettlementCurrency());
item.setMoney_cr(String.valueOf(tmsOrder.getCollectedFreight()));
item.setMoney_bal(String.valueOf(tmsOrder.getCollectedFreight()));
ysitemList.add(item);
/* AjaxResult ajaxResult=userServiceFeign.getShipperSummaryData(Long.valueOf(reconciliation.getSettlementPartyId()));
*//* AjaxResult ajaxResult=userServiceFeign.getShipperSummaryData(Long.valueOf(reconciliation.getSettlementPartyId()));
if(ajaxResult.get("code").toString().equals("200")){
Object userShipperPo= ajaxResult.get("data");
JSONObject jsonObject = new JSONObject((Map) userShipperPo);
@@ -1023,9 +1077,10 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
}
}*//*
}*/
}
}
}
SKbodys bodys=new SKbodys();
@@ -1147,7 +1202,6 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
}
}
}
} catch (JAXBException e) {
e.printStackTrace();
}
@@ -246,4 +246,8 @@ public class ReconciliationPO extends BaseVOEntity{
@ApiModelProperty(value = "账单科目明细")
public List<ReconciliationAccount> reconciliationAccountDTOList;
@ApiModelProperty("账单科目明细")
private String reconciliationAccountDTOListJsonStr;
}
@@ -30,6 +30,11 @@ import java.util.List;
public class ReconciliationDO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty("对账单表id")
private Long reconciliationId;
@@ -172,5 +172,26 @@ public class ReconciliationDomainService {
return reconciliationService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber);
}
/**
* 根据订单ID列表查询RECONCILIATION_ORDER_DETAIL表中这些订单创建最早的日期
*
* @param orderIds 订单ID列表
* @return 最早创建日期
*/
public Date getEarliestCreateTimeByOrderIdList(List<String> orderIds) {
if (orderIds == null || orderIds.isEmpty()) {
return null;
}
LambdaQueryWrapper<ReconciliationOrderDetail> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ReconciliationOrderDetail::getTmsOrderId, orderIds);
queryWrapper.eq(ReconciliationOrderDetail::getDelFlag, 1);
queryWrapper.orderByAsc(ReconciliationOrderDetail::getCreateTime);
List<ReconciliationOrderDetail> list = reconciliationOrderDetailService.list(queryWrapper);
if (list != null && !list.isEmpty()) {
return list.get(0).getCreateTime();
}
return null;
}
}
@@ -310,4 +310,18 @@ public class ReconciliationApi extends BaseController{
}
/**
* 根据订单ID列表查询RECONCILIATION_ORDER_DETAIL表中这些订单创建最早的日期
*
* @param orderIds 订单ID列表
* @return 最早创建日期
*/
@ApiOperation("根据订单ID列表查询RECONCILIATION_ORDER_DETAIL表中这些订单创建最早的日期")
@PostMapping("/getEarliestCreateTimeByOrderIds")
public AjaxResult getEarliestCreateTimeByOrderIds(@RequestBody List<String> orderIds)
{
Date earliestDate = reconciliationApplicationService.getEarliestCreateTimeByOrderIdList(orderIds);
return AjaxResult.success(earliestDate);
}
}
@@ -133,11 +133,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getFeeList" parameterType="java.lang.String" resultType="java.util.Map">
SELECT
SUBJECT_NAME,AMOUNT,RATE
SUBJECT_NAME,max(AMOUNT) as AMOUNT
FROM
RECONCILIATION r left join RECONCILIATION_ACCOUNT acc on acc.RECONCILIATION_ID = r.RECONCILIATION_ID left join NGWL_TEST_WLHY.TMS_INVOICE_LIST tms on r.APPLY_NUMBER = tms.APPLY_NUMBER
WHERE
tms.ID = #{invoiceId}
WHERE AMOUNT != 0 and tms.ID = #{invoiceId} group by SUBJECT_NAME
</select>
<select id="queryInvoiceList" resultType="com.linke.finance.domain.businessDocument.repository.po.BusinessDocumentPO" parameterType="com.linke.finance.domain.businessDocument.repository.todo.BusinessDocumentDO">
@@ -207,4 +207,137 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="delReconciliationDetailByInnerNumber">
update reconciliation_order_detail set del_flag = 2 where reconciliation_id = #{reconciliationId}
</update>
<!-- 自定义插入语句,确保传入的createTime被使用 -->
<insert id="insertWithCreateTime" parameterType="com.linke.finance.domain.reconciliation.entity.Reconciliation" useGeneratedKeys="true" keyProperty="reconciliationId">
INSERT INTO reconciliation (
verification_money,
settlement_count,
party_name,
settlement_party_id,
payer_type,
bill_remark,
settlement_remark,
order_shipping_type,
department_name,
user_id,
shipper_name,
waybill_source,
waybill_source_name,
reconciliation_start,
reconciliation_end,
bill_name,
collection_amount,
change_amount,
other_amount,
receivable,
actual_receivable,
uncollected_receivable,
collection_state,
audit_state,
create_time,
create_by,
create_by_name,
update_time,
update_by,
update_by_name,
del_flag,
organization_id,
organization_name,
top_organization_id,
auditor,
auditor_name,
auth_time,
inner_number,
remark,
auth_remark,
auth_file,
waybill_verify_flag,
waybill_verify_time,
invoice_cost_has,
invoice_apply_status,
invoice_info_id,
audit_number,
audit_status,
audit_type,
audit_remark,
instance_id,
approval_status,
approval_result,
is_invoice,
invoice_id,
invoice_make_time,
apply_number,
synchronous_status,
synchronous_time,
nc_id,
sk_synchronous_status,
sk_synchronous_time,
sk_nc_id
) VALUES (
#{verificationMoney},
#{settlementCount},
#{partyName},
#{settlementPartyId},
#{payerType},
#{billRemark},
#{settlementRemark},
#{orderShippingType},
#{departmentName},
#{userId},
#{shipperName},
#{waybillSource},
#{waybillSourceName},
#{reconciliationStart},
#{reconciliationEnd},
#{billName},
#{collectionAmount},
#{changeAmount},
#{otherAmount},
#{receivable},
#{actualReceivable},
#{uncollectedReceivable},
#{collectionState},
#{auditState},
#{createTime},
#{createBy},
#{createByName},
#{updateTime},
#{updateBy},
#{updateByName},
#{delFlag},
#{organizationId},
#{organizationName},
#{topOrganizationId},
#{auditor},
#{auditorName},
#{authTime},
#{innerNumber},
#{remark},
#{authRemark},
#{authFile},
#{waybillVerifyFlag},
#{waybillVerifyTime},
#{invoiceCostHas},
#{invoiceApplyStatus},
#{invoiceInfoId},
#{auditNumber},
#{auditStatus},
#{auditType},
#{auditRemark},
#{instanceId},
#{approvalStatus},
#{approvalResult},
#{isInvoice},
#{invoiceId},
#{invoiceMakeTime},
#{applyNumber},
#{synchronousStatus},
#{synchronousTime},
#{ncId},
#{skSynchronousStatus},
#{skSynchronousTime},
#{skNcId}
)
</insert>
</mapper>
+17
View File
@@ -0,0 +1,17 @@
# 基础镜像
FROM arm64v8/openjdk:8
# author
MAINTAINER manhuoda
#指定东八区时区
ENV TZ Asia/Shanghai
#指定utf-8编码格
ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
#将当前mhd_special_logistics.jar 复制到容器根目录下
ADD mhd_oms.jar mhd_oms.jar
#暴露容器端口 Docker镜像告知Docker宿主机应用监听了端口
EXPOSE 8017
# 运行jar包
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Xms1000m", "-Xmx1500m","-jar","/mhd_oms.jar"]
+187
View File
@@ -0,0 +1,187 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.mhd</groupId>
<artifactId>mhd</artifactId>
<version>3.6.0</version>
</parent>
<artifactId>mhd_oms</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--添加feign依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<!--nacos 服务注册客户端依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- Sentinel⽀持采⽤ Nacos 作为规则配置数据源,引⼊该适配依赖 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
<!--sentinel 核⼼环境 依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<!-- Jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- Alibaba Fastjson -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<!-- Mhd Common Core-->
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-core</artifactId>
</dependency>
<!-- Mhd Common Redis-->
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-redis</artifactId>
</dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.1.193</version>
</dependency>
<!--添加druid连接池 依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.11</version>
</dependency>
<!--lombok工具-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.38</version>
<scope>provided</scope>
</dependency>
<!--链路追踪-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
<!-- Mhd Common Security-->
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-security</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd_common_db</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-log</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.mhd</groupId>-->
<!-- <artifactId>mhd-modules-system</artifactId>-->
<!-- <version>3.6.0</version>-->
<!-- <scope>compile</scope>-->
<!-- </dependency>-->
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-user-center</artifactId>
<version>3.6.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd_transport</artifactId>
<version>3.6.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<profiles>
<profile>
<id>mhd_oms</id>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
@@ -0,0 +1,20 @@
package com.mhd.oms;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(scanBasePackages = {"com.mhd.oms"},
exclude = DataSourceAutoConfiguration.class)
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.mhd"})
@MapperScan("com.mhd.oms.domain.**.mapper")
public class OMSApplication {
public static void main(String[] args) {
SpringApplication.run(OMSApplication.class, args);
}
}
@@ -0,0 +1,72 @@
package com.mhd.oms.application.service.businessDocumentAddressMulti;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.po.BusinessDocumentAddressMultiPO;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.todo.BusinessDocumentAddressMultiDO;
import com.mhd.oms.domain.businessDocumentAddressMulti.service.BusinessDocumentAddressMultiDomainService;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 请填写功能名称ApplicationService
*
* @author gen
* @date 2026-01-26
*/
@Service
@Slf4j
public class BusinessDocumentAddressMultiApplicationService {
@Autowired
private BusinessDocumentAddressMultiDomainService businessDocumentAddressMultiDomainService;
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentAddressMultiPO> queryList(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
businessDocumentAddressMultiDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return businessDocumentAddressMultiDomainService.queryList(businessDocumentAddressMultiDO);
}
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO) {
return businessDocumentAddressMultiDomainService.insert(businessDocumentAddressMultiDO);
}
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO) {
return businessDocumentAddressMultiDomainService.update(businessDocumentAddressMultiDO);
}
/**
* 批量删除请填写功能名称
*/
public boolean delete(Long[] ids) {
return businessDocumentAddressMultiDomainService.delete(ids);
}
/**
* 获取请填写功能名称详细信息
*/
public BusinessDocumentAddressMultiPO getInfo(Long id)
{
return businessDocumentAddressMultiDomainService.getInfo(id);
}
}
@@ -0,0 +1,72 @@
package com.mhd.oms.application.service.businessDocumentCargoMulti;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.po.BusinessDocumentCargoMultiPO;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.todo.BusinessDocumentCargoMultiDO;
import com.mhd.oms.domain.businessDocumentCargoMulti.service.BusinessDocumentCargoMultiDomainService;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 请填写功能名称ApplicationService
*
* @author gen
* @date 2026-01-26
*/
@Service
@Slf4j
public class BusinessDocumentCargoMultiApplicationService {
@Autowired
private BusinessDocumentCargoMultiDomainService businessDocumentCargoMultiDomainService;
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentCargoMultiPO> queryList(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
businessDocumentCargoMultiDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return businessDocumentCargoMultiDomainService.queryList(businessDocumentCargoMultiDO);
}
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO) {
return businessDocumentCargoMultiDomainService.insert(businessDocumentCargoMultiDO);
}
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO) {
return businessDocumentCargoMultiDomainService.update(businessDocumentCargoMultiDO);
}
/**
* 批量删除请填写功能名称
*/
public boolean delete(Long[] ids) {
return businessDocumentCargoMultiDomainService.delete(ids);
}
/**
* 获取请填写功能名称详细信息
*/
public BusinessDocumentCargoMultiPO getInfo(Long id)
{
return businessDocumentCargoMultiDomainService.getInfo(id);
}
}
@@ -0,0 +1,84 @@
package com.mhd.oms.application.service.businessDocumentOrder;
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
import com.mhd.oms.domain.businessDocumentOrder.service.BusinessDocumentOrderDomainService;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 请填写功能名称ApplicationService
*
* @author gen
* @date 2026-01-26
*/
@Service
@Slf4j
public class BusinessDocumentOrderApplicationService {
@Autowired
private BusinessDocumentOrderDomainService businessDocumentOrderDomainService;
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentOrderPO> queryList(BusinessDocumentOrderDO businessDocumentOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
businessDocumentOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return businessDocumentOrderDomainService.queryList(businessDocumentOrderDO);
}
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentOrderDO businessDocumentOrderDO) {
return businessDocumentOrderDomainService.insert(businessDocumentOrderDO);
}
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentOrderDO businessDocumentOrderDO) {
return businessDocumentOrderDomainService.update(businessDocumentOrderDO);
}
/**
* 批量删除请填写功能名称
*/
public boolean delete(Long[] ids) {
return businessDocumentOrderDomainService.delete(ids);
}
/**
* 获取请填写功能名称详细信息
*/
public BusinessDocumentOrderPO getInfo(Long id)
{
return businessDocumentOrderDomainService.getInfo(id);
}
public Boolean audit( Long[] ids, Long reviewStatus)
{
return businessDocumentOrderDomainService.audit(ids,reviewStatus);
}
public boolean execute(Long[] ids) {
return businessDocumentOrderDomainService.execute(ids);
}
public boolean cancelExecute(Long[] ids) throws Exception{
return businessDocumentOrderDomainService.cancelExecute(ids);
}
}
@@ -0,0 +1,74 @@
package com.mhd.oms.application.service.deliveryInfo;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
import com.mhd.oms.domain.deliveryInfo.service.DeliveryInfoDomainService;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 发货信息ApplicationService
*
* @author gen
* @date 2024-05-16
*/
@Service
@Slf4j
public class DeliveryInfoApplicationService {
@Autowired
private DeliveryInfoDomainService deliveryInfoDomainService;
/**
* 分页查询发货信息列表
*/
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
deliveryInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return deliveryInfoDomainService.queryList(deliveryInfoDO);
}
/**
* 新增发货信息
*/
public Boolean insert(DeliveryInfoDO deliveryInfoDO) {
return deliveryInfoDomainService.insert(deliveryInfoDO);
}
/**
* 修改发货信息
*/
public Boolean update(DeliveryInfoDO deliveryInfoDO) {
return deliveryInfoDomainService.update(deliveryInfoDO);
}
/**
* 批量删除发货信息
*/
public boolean delete(Long[] ids) {
return deliveryInfoDomainService.delete(ids);
}
/**
* 获取发货信息详细信息
*/
public DeliveryInfoPO getInfo(Long id)
{
return deliveryInfoDomainService.getInfo(id);
}
}
@@ -0,0 +1,80 @@
package com.mhd.oms.application.service.executeOrder;
import com.mhd.oms.domain.executeOrder.repository.po.ExecuteOrderPO;
import com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO;
import com.mhd.oms.domain.executeOrder.service.ExecuteOrderDomainService;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 请填写功能名称ApplicationService
*
* @author gen
* @date 2026-01-27
*/
@Service
@Slf4j
public class ExecuteOrderApplicationService {
@Autowired
private ExecuteOrderDomainService executeOrderDomainService;
/**
* 分页查询请填写功能名称列表
*/
public List<ExecuteOrderPO> queryList(ExecuteOrderDO executeOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
executeOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return executeOrderDomainService.queryList(executeOrderDO);
}
/**
* 新增请填写功能名称
*/
public Boolean insert(ExecuteOrderDO executeOrderDO) {
return executeOrderDomainService.insert(executeOrderDO);
}
/**
* 修改请填写功能名称
*/
public Boolean update(ExecuteOrderDO executeOrderDO) {
return executeOrderDomainService.update(executeOrderDO);
}
/**
* 批量删除请填写功能名称
*/
public boolean delete(Long[] ids) {
return executeOrderDomainService.delete(ids);
}
public boolean issueDocuments(Long[] ids) {
return executeOrderDomainService.issueDocuments(ids);
}
public boolean cancelIssueDocuments(Long[] ids) {
return executeOrderDomainService.cancelIssueDocuments(ids);
}
/**
* 获取请填写功能名称详细信息
*/
public ExecuteOrderPO getInfo(Long id)
{
return executeOrderDomainService.getInfo(id);
}
}
@@ -0,0 +1,74 @@
package com.mhd.oms.application.service.goods;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
import com.mhd.oms.domain.goods.service.GoodsDomainService;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 商品信息ApplicationService
*
* @author gen
* @date 2024-05-16
*/
@Service
@Slf4j
public class GoodsApplicationService {
@Autowired
private GoodsDomainService goodsDomainService;
/**
* 分页查询商品信息列表
*/
public List<GoodsPO> queryList(GoodsDO goodsDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
goodsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return goodsDomainService.queryList(goodsDO);
}
/**
* 新增商品信息
*/
public Boolean insert(GoodsDO goodsDO) {
return goodsDomainService.insert(goodsDO);
}
/**
* 修改商品信息
*/
public Boolean update(GoodsDO goodsDO) {
return goodsDomainService.update(goodsDO);
}
/**
* 批量删除商品信息
*/
public boolean delete(Long[] ids) {
return goodsDomainService.delete(ids);
}
/**
* 获取商品信息详细信息
*/
public GoodsPO getInfo(Long id)
{
return goodsDomainService.getInfo(id);
}
}
@@ -0,0 +1,74 @@
package com.mhd.oms.application.service.interceptOrder;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.interceptOrder.repository.po.InterceptOrderPO;
import com.mhd.oms.domain.interceptOrder.repository.todo.InterceptOrderDO;
import com.mhd.oms.domain.interceptOrder.service.InterceptOrderDomainService;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 拦截订单ApplicationService
*
* @author gen
* @date 2024-05-30
*/
@Service
@Slf4j
public class InterceptOrderApplicationService {
@Autowired
private InterceptOrderDomainService interceptOrderDomainService;
/**
* 分页查询拦截订单列表
*/
public List<InterceptOrderPO> queryList(InterceptOrderDO interceptOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
interceptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return interceptOrderDomainService.queryList(interceptOrderDO);
}
/**
* 新增拦截订单
*/
public Boolean insert(InterceptOrderDO interceptOrderDO) {
return interceptOrderDomainService.insert(interceptOrderDO);
}
/**
* 修改拦截订单
*/
public Boolean update(InterceptOrderDO interceptOrderDO) {
return interceptOrderDomainService.update(interceptOrderDO);
}
/**
* 批量删除拦截订单
*/
public boolean delete(Long[] ids) {
return interceptOrderDomainService.delete(ids);
}
/**
* 获取拦截订单详细信息
*/
public InterceptOrderPO getInfo(Long id)
{
return interceptOrderDomainService.getInfo(id);
}
}
@@ -0,0 +1,74 @@
package com.mhd.oms.application.service.logistics;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
import com.mhd.oms.domain.logistics.service.LogisticsDomainService;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 物流信息ApplicationService
*
* @author gen
* @date 2024-05-16
*/
@Service
@Slf4j
public class LogisticsApplicationService {
@Autowired
private LogisticsDomainService logisticsDomainService;
/**
* 分页查询物流信息列表
*/
public List<LogisticsPO> queryList(LogisticsDO logisticsDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
logisticsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return logisticsDomainService.queryList(logisticsDO);
}
/**
* 新增物流信息
*/
public Boolean insert(LogisticsDO logisticsDO) {
return logisticsDomainService.insert(logisticsDO);
}
/**
* 修改物流信息
*/
public Boolean update(LogisticsDO logisticsDO) {
return logisticsDomainService.update(logisticsDO);
}
/**
* 批量删除物流信息
*/
public boolean delete(Long[] ids) {
return logisticsDomainService.delete(ids);
}
/**
* 获取物流信息详细信息
*/
public LogisticsPO getInfo(Long id)
{
return logisticsDomainService.getInfo(id);
}
}
@@ -0,0 +1,80 @@
package com.mhd.oms.application.service.orderType;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.orderType.repository.po.OrderTypeDictPO;
import com.mhd.oms.domain.orderType.repository.po.OrderTypePO;
import com.mhd.oms.domain.orderType.repository.todo.OrderTypeDO;
import com.mhd.oms.domain.orderType.service.OrderTypeDomainService;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 订单类型关系ApplicationService
*
* @author gen
* @date 2024-05-15
*/
@Service
@Slf4j
public class OrderTypeApplicationService {
@Autowired
private OrderTypeDomainService orderTypeDomainService;
/**
* 分页查询订单类型关系列表
*/
public List<OrderTypePO> queryList(OrderTypeDO orderTypeDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
orderTypeDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return orderTypeDomainService.queryList(orderTypeDO);
}
/**
* 新增订单类型关系
*/
public Boolean insert(OrderTypeDO orderTypeDO) {
//获取当前登录人获取当前登录人的租户
LoginUser loginUser = SecurityUtils.getLoginUser();
orderTypeDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
return orderTypeDomainService.insert(orderTypeDO);
}
/**
* 修改订单类型关系
*/
public Boolean update(OrderTypeDO orderTypeDO) {
return orderTypeDomainService.update(orderTypeDO);
}
/**
* 批量删除订单类型关系
*/
public boolean delete(Long[] ids) {
return orderTypeDomainService.delete(ids);
}
/**
* 获取订单类型关系详细信息
*/
public OrderTypePO getInfo(Long id)
{
return orderTypeDomainService.getInfo(id);
}
public List<OrderTypeDictPO> listDict() {
return orderTypeDomainService.listDict();
}
}
@@ -0,0 +1,549 @@
package com.mhd.oms.application.service.purchaseOrder;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.mhd.common.core.enums.DictCode;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.OrderSequence;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.constant.OrderConstant;
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
import com.mhd.oms.domain.deliveryInfo.service.DeliveryInfoDomainService;
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
import com.mhd.oms.domain.goods.service.GoodsDomainService;
import com.mhd.oms.domain.interceptOrder.repository.todo.InterceptOrderDO;
import com.mhd.oms.domain.interceptOrder.service.InterceptOrderDomainService;
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
import com.mhd.oms.domain.logistics.service.LogisticsDomainService;
import com.mhd.oms.domain.orderType.repository.po.OrderTypePO;
import com.mhd.oms.domain.orderType.service.OrderTypeDomainService;
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderDetailsPO;
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderPO;
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderAddDO;
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderAuditDO;
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderDO;
import com.mhd.oms.domain.purchaseOrder.service.PurchaseOrderDomainService;
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
import com.mhd.oms.domain.receiptInfo.service.ReceiptInfoDomainService;
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
import com.mhd.oms.domain.scmOrder.repository.todo.ScmOrderDO;
import com.mhd.oms.domain.scmOrder.service.ScmOrderDomainService;
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
import com.mhd.oms.domain.settlement.service.SettlementDomainService;
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
import com.mhd.oms.domain.taskOrder.service.TaskOrderDomainService;
import com.mhd.oms.infrastructure.feign.vo.SysDictDataVo;
import com.mhd.oms.interfaces.dto.purchaseOrder.PurchaseOrderExcelDTO;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 采购订单管理ApplicationService
*
* @author gen
* @date 2024-05-16
*/
@Service
@Slf4j
public class PurchaseOrderApplicationService {
@Resource
private PurchaseOrderDomainService purchaseOrderDomainService;//采购订单基本信息
@Resource
private SettlementDomainService settlementDomainService;//采购结算信息
@Resource
private DeliveryInfoDomainService deliveryInfoDomainService;//采购发货信息
@Resource
private ReceiptInfoDomainService receiptInfoDomainService;//采购订单收货信息
@Resource
private LogisticsDomainService logisticsDomainService;//采购订单物流信息
@Resource
private GoodsDomainService goodsDomainService;//采购订单物料信息
@Resource
private OrderTypeDomainService orderTypeDomainService;//订单类型关系
@Resource
private TaskOrderDomainService taskOrderDomainService;
@Resource
private InterceptOrderDomainService interceptOrderDomainService;
@Resource
private ScmOrderDomainService scmOrderDomainService;
@Autowired
private SystemServiceFeign systemServiceFeign;
/**
* 分页查询采购订单管理列表
*/
public List<PurchaseOrderPO> queryList(PurchaseOrderDO purchaseOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
purchaseOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
purchaseOrderDO.setSource(0);
return purchaseOrderDomainService.queryList(purchaseOrderDO);
}
/**
* 新增采购订单管理
*/
@Transactional
public Boolean insert(PurchaseOrderAddDO purchaseOrderAddDO) {
//获取当前登录人获取当前登录人的租户
LoginUser loginUser = SecurityUtils.getLoginUser();
List<GoodsDO> goodsDOList = purchaseOrderAddDO.getGoodsDOList();
//1采购订单基本信息保存
PurchaseOrderDO purchaseOrderDo = purchaseOrderAddDO.getPurchaseOrderDo();
//查询订单关系表信息
OrderTypePO orderTypePO = orderTypeDomainService.getInfo(purchaseOrderDo.getOrderTypeId());
purchaseOrderDo.setJobTaskTypeId(orderTypePO.getJobTaskTypeId());
purchaseOrderDo.setJobTaskType(orderTypePO.getJobTaskType());
purchaseOrderDo.setOrderType(orderTypePO.getOrderType());
purchaseOrderDo.setDeliverySystem(orderTypePO.getDeliverySystem());
purchaseOrderDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
//物料信息
String goodNames = goodsDOList.stream().map(GoodsDO::getGoodsName).collect(Collectors.joining(","));
//物料数量
Integer goodSum = goodsDOList.stream().mapToInt(GoodsDO::getMaterialUnitEaQuantity).sum();
purchaseOrderDo.setMaterialInfo(goodNames);
purchaseOrderDo.setMaterialNum(goodSum);
Long orderId = purchaseOrderDomainService.insertReturnId(purchaseOrderDo);
//2采购订单结算信息保存
SettlementDO settlementDo = purchaseOrderAddDO.getSettlementDo();
//数据字典信息获取结算方式支付状态
AjaxResult settlementDict = systemServiceFeign.selectListByDictType(DictCode.OMS_SETTLE_WAY.getCode());
if (!"200".equals(String.valueOf(settlementDict.get("code")))) {
throw new ServiceException("字典信息(结算方式-OMS)获取失败");
}
List<SysDictDataVo> settlementDictList = JSONUtil.toList(JSONUtil.toJsonStr(settlementDict.get("data")), SysDictDataVo.class);
Map<String, String> settlementDictListDictMap = settlementDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!settlementDictListDictMap.containsKey(settlementDo.getSettlementWayId())) {
throw new ServiceException("结算方式未找到");
}
AjaxResult payStateDict = systemServiceFeign.selectListByDictType(DictCode.OMS_PYA_STATE.getCode());
if (!"200".equals(String.valueOf(payStateDict.get("code")))) {
throw new ServiceException("字典信息(支付状态-OMS)获取失败");
}
List<SysDictDataVo> payStateDictList = JSONUtil.toList(JSONUtil.toJsonStr(payStateDict.get("data")), SysDictDataVo.class);
Map<String, String> payStateDictMap = payStateDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!payStateDictMap.containsKey(settlementDo.getPayStatusId())) {
throw new ServiceException("支付状态未找到");
}
settlementDo.setOrderId(orderId);
settlementDo.setSettlementWay(settlementDictListDictMap.get(settlementDo.getSettlementWayId()));
settlementDo.setPayStatus(payStateDictMap.get(settlementDo.getPayStatusId()));
settlementDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
settlementDomainService.insert(settlementDo);
//3采购订单发货信息保存
DeliveryInfoDO deliveryInfoDo = purchaseOrderAddDO.getDeliveryInfoDo();
deliveryInfoDo.setOrderId(orderId);
deliveryInfoDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
deliveryInfoDomainService.insert(deliveryInfoDo);
//4采购订单收货信息保存
ReceiptInfoDO receiptInfoDo = purchaseOrderAddDO.getReceiptInfoDo();
receiptInfoDo.setOrderId(orderId);
receiptInfoDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
receiptInfoDomainService.insert(receiptInfoDo);
//5采购订单物流信息保存
LogisticsDO logisticsDo = purchaseOrderAddDO.getLogisticsDo();
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.OMS_TRANSPORT_TYPE.getCode());
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
throw new ServiceException("字典信息(运输方式-OMS)获取失败");
}
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
// if (!transportTypeDictMap.containsKey(logisticsDo.getShippingTypeId())) {
// throw new ServiceException("运输方式未找到");
// }
logisticsDo.setShippingType(transportTypeDictMap.get(logisticsDo.getShippingTypeId()));
logisticsDo.setOrderId(orderId);
logisticsDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
logisticsDomainService.insert(logisticsDo);
//6采购订单物料信息保存
//6.1物料信息删除
goodsDomainService.deleteByOrderId(orderId);
//6.1物料信息保存
goodsDOList.forEach(goodsDO -> {
goodsDO.setOrderId(orderId);
goodsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
});
goodsDomainService.batchInsert(goodsDOList);
return true;
}
/**
* 修改采购订单管理
*/
@Transactional
public Boolean update(PurchaseOrderAddDO purchaseOrderAddDO) {
//1采购订单基本信息保存
PurchaseOrderDO purchaseOrderDo = purchaseOrderAddDO.getPurchaseOrderDo();
List<GoodsDO> goodsDOList = purchaseOrderAddDO.getGoodsDOList();
//查询订单类型信息
OrderTypePO orderTypePO = orderTypeDomainService.getInfo(purchaseOrderDo.getOrderTypeId());
purchaseOrderDo.setJobTaskTypeId(orderTypePO.getJobTaskTypeId());
purchaseOrderDo.setJobTaskType(orderTypePO.getJobTaskType());
purchaseOrderDo.setOrderType(orderTypePO.getOrderType());
purchaseOrderDo.setDeliverySystem(orderTypePO.getDeliverySystem());
//物料信息
String goodNames = goodsDOList.stream().map(GoodsDO::getGoodsName).collect(Collectors.joining(","));
//物料数量
Integer goodSum = goodsDOList.stream().mapToInt(GoodsDO::getMaterialUnitEaQuantity).sum();
purchaseOrderDo.setMaterialInfo(goodNames);
purchaseOrderDo.setMaterialNum(goodSum);
purchaseOrderDomainService.update(purchaseOrderDo);
//2采购订单结算信息保存
SettlementDO settlementDo = purchaseOrderAddDO.getSettlementDo();
//数据字典信息获取结算方式支付状态
AjaxResult settlementDict = systemServiceFeign.selectListByDictType(DictCode.OMS_SETTLE_WAY.getCode());
if (!"200".equals(String.valueOf(settlementDict.get("code")))) {
throw new ServiceException("字典信息(结算方式-OMS)获取失败");
}
List<SysDictDataVo> settlementDictList = JSONUtil.toList(JSONUtil.toJsonStr(settlementDict.get("data")), SysDictDataVo.class);
Map<String, String> settlementDictListDictMap = settlementDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!settlementDictListDictMap.containsKey(settlementDo.getSettlementWayId())) {
throw new ServiceException("结算方式未找到");
}
AjaxResult payStateDict = systemServiceFeign.selectListByDictType(DictCode.OMS_PYA_STATE.getCode());
if (!"200".equals(String.valueOf(payStateDict.get("code")))) {
throw new ServiceException("字典信息(支付状态-OMS)获取失败");
}
List<SysDictDataVo> payStateDictList = JSONUtil.toList(JSONUtil.toJsonStr(payStateDict.get("data")), SysDictDataVo.class);
Map<String, String> payStateDictMap = payStateDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!payStateDictMap.containsKey(settlementDo.getPayStatusId())) {
throw new ServiceException("支付状态未找到");
}
settlementDo.setOrderId(purchaseOrderDo.getId());
settlementDo.setSettlementWay(settlementDictListDictMap.get(settlementDo.getSettlementWayId()));
settlementDo.setPayStatus(payStateDictMap.get(settlementDo.getPayStatusId()));
if(settlementDo.getId() != null){//如果ID不为空则走修改方法
settlementDomainService.update(settlementDo);
} else {
settlementDomainService.insert(settlementDo);
}
//3采购订单发货信息保存
DeliveryInfoDO deliveryInfoDo = purchaseOrderAddDO.getDeliveryInfoDo();
deliveryInfoDo.setOrderId(purchaseOrderDo.getId());
if (deliveryInfoDo.getId() != null) {
deliveryInfoDomainService.update(deliveryInfoDo);
} else {
deliveryInfoDomainService.insert(deliveryInfoDo);
}
//4采购订单收货信息保存
ReceiptInfoDO receiptInfoDo = purchaseOrderAddDO.getReceiptInfoDo();
receiptInfoDo.setOrderId(purchaseOrderDo.getId());
if (receiptInfoDo.getOrderId() != null) {
receiptInfoDomainService.update(receiptInfoDo);
} else {
receiptInfoDomainService.insert(receiptInfoDo);
}
//5采购订单物流信息保存
LogisticsDO logisticsDo = purchaseOrderAddDO.getLogisticsDo();
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.OMS_TRANSPORT_TYPE.getCode());
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
throw new ServiceException("字典信息(运输方式-OMS)获取失败");
}
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!transportTypeDictMap.containsKey(logisticsDo.getShippingTypeId())) {
throw new ServiceException("运输方式未找到");
}
logisticsDo.setOrderId(purchaseOrderDo.getId());
logisticsDo.setShippingType(transportTypeDictMap.get(logisticsDo.getShippingTypeId()));
if (logisticsDo.getId() != null) {
logisticsDomainService.update(logisticsDo);
} else {
logisticsDomainService.insert(logisticsDo);
}
//6采购订单物料信息保存
//6.1物料信息删除
goodsDomainService.deleteByOrderId(purchaseOrderDo.getId());
//6.1物料信息保存
goodsDOList.forEach(goodsDO -> goodsDO.setOrderId(purchaseOrderDo.getId()));
goodsDomainService.batchInsert(goodsDOList);
return true;
}
/**
* 批量删除采购订单管理
*/
public boolean delete(Long[] ids) {
return purchaseOrderDomainService.delete(ids);
}
/**
* 获取采购订单管理详细信息
*/
public PurchaseOrderDetailsPO getInfo(Long id)
{
return purchaseOrderDomainService.getInfo(id);
}
/**
* 采购订单审核
* @param purchaseOrderAuditDO
* @return
*/
public Boolean audit(PurchaseOrderAuditDO purchaseOrderAuditDO) {
return purchaseOrderDomainService.audit(purchaseOrderAuditDO);
}
public Boolean cancelAudit(PurchaseOrderAuditDO purchaseOrderAuditDO) {
return purchaseOrderDomainService.cancelAudit(purchaseOrderAuditDO);
}
@Transactional(rollbackFor = Exception.class)
public void importPurOrderExcel(List<PurchaseOrderExcelDTO> purchaseOrderExcelDtoList) {
// TODO:缺少对ID字段的相关处理
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
if (CollUtil.isEmpty(purchaseOrderExcelDtoList)) {
throw new ServiceException("导入信息为空");
}
List<SettlementDO> settlementDOList = new ArrayList<>();
List<DeliveryInfoDO> deliveryInfoDOList = new ArrayList<>();
List<ReceiptInfoDO> receiptInfoDOList = new ArrayList<>();
List<LogisticsDO> logisticsDOList = new ArrayList<>();
List<GoodsDO> goodsDOList = new ArrayList<>();
// =================== 遍历导入数据保存销售订单并将其余表数据处理为可批量插入的数据 =========================
purchaseOrderExcelDtoList.forEach( x -> {
// 采购订单信息
PurchaseOrder purOrder = purchaseOrderDomainService.saveFromImportSalesOrder(x);
// 结算信息保存到列表中进行批量保存
settlementDomainService.listAddFromImportPurOrder(settlementDOList, x, purOrder);
// 发货信息保存到列表中进行批量保存
deliveryInfoDomainService.listAddFromImportPurOrder(deliveryInfoDOList, x, purOrder);
// 收货信息保存到列表中进行批量保存
receiptInfoDomainService.listAddFromImportPurOrder(receiptInfoDOList, x, purOrder);
// 物流信息保存到列表中进行批量保存
logisticsDomainService.listAddFromImportPurOrder(logisticsDOList, x, purOrder);
// 物料信息保存到列表中进行批量保存导入的每个订单只能有一条明细
goodsDomainService.listAddFromImportPurOrder(goodsDOList, x, purOrder);
});
// ================== 列表存在数据则保存 ==================
if(settlementDOList.size() > 0){
settlementDomainService.batchInsert(settlementDOList);
}
if(deliveryInfoDOList.size() > 0){
deliveryInfoDomainService.batchInsert(deliveryInfoDOList);
}
if(receiptInfoDOList.size() > 0){
receiptInfoDomainService.batchInsert(receiptInfoDOList);
}
if(logisticsDOList.size() > 0){
logisticsDomainService.batchInsert(logisticsDOList);
}
if(goodsDOList.size() > 0){
goodsDomainService.batchInsert(goodsDOList);
}
}
public List<PurchaseOrderPO> orderPoolList(PurchaseOrderDO purchaseOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
purchaseOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
purchaseOrderDO.setSource(1);
return purchaseOrderDomainService.queryList(purchaseOrderDO);
}
/**
* 拦截采购订单
*
* 传入多个订单ID获取订单下全部任务并分组MAP <订单m,List<m下的所有任务n>>,
* 遍历分组处理每组对应的采购订单及任务列表
* 不管拦截成功或失败都会新增一条记录到拦截表中拦截成功后会同步修改下游数据表中的状态
*
* @param idList
*/
@Transactional(rollbackFor = Exception.class)
public void interceptOrder(List<Long> idList) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
// 查询采购订单列表下所有的任务组 <订单m,List<m下的所有任务n>>,
Map<Long, List<TaskOrderPO>> taskMapGroupByOrderId = taskOrderDomainService.getMapByOrderIdList(idList, OrderConstant.SCM_SOURCE_1);
taskMapGroupByOrderId.forEach((k,v) -> {
// 校验订单
PurchaseOrderDetailsPO purOrder = purchaseOrderDomainService.getInfo(k);
if(ArrayUtil.contains(OrderConstant.PUR_STATUS_GROUP_UNABLE_INTERCEPT, purOrder.getPurchaseOrderPO().getOrderState())){
throw new ServiceException(String.format("【%s】当前订单状态无需进行拦截!",purOrder.getPurchaseOrderPO().getOrderNo()));
//break;
}
// 保存订单拦截表
InterceptOrderDO interceptOrderDO = interceptOrderDomainService.saveInterceptOrder(k, v);
// 拦截成功修改其他表数据
if(OrderConstant.INTERCEPT_STATUS_1.equals(interceptOrderDO.getInterceptState())){
// 采购订单修改为已拦截
purchaseOrderDomainService.updateStateById(k, OrderConstant.PUR_STATUS_8);
// 供应链订单修改为已拦截
scmOrderDomainService.interceptByOrderId(k);
// 作业任务修改为已拦截(排除已取消状态的)
taskOrderDomainService.interceptByOrderId(k);
}
});
}
@Transactional
public Boolean createSco(List<Long> ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
String userName = loginUser.getUsername();
// 获取登录人id
Long userId = loginUser.getUserid();
//1先查询采购订单的基本信息
List<PurchaseOrderPO> purchaseOrderPOS = purchaseOrderDomainService.getInfo(ids);
//11 采购订单只有在已审核状态下才可以生成供应链订单
List<PurchaseOrderPO> stateCount = purchaseOrderPOS.stream().filter(e -> e.getOrderState() != 2).collect(Collectors.toList());
if (!stateCount.isEmpty()) {
throw new ServiceException("已审核状态下才可以生成供应链订单");
}
//1.2 更新采购订单的状态
List<PurchaseOrderDO> purchaseOrderDOS = purchaseOrderPOS.stream().map(purchaseOrderPO -> {
PurchaseOrderDO purchaseOrderDO = new PurchaseOrderDO();
BeanUtils.copyProperties(purchaseOrderPO, purchaseOrderDO);
purchaseOrderDO.setOrderState(4);
return purchaseOrderDO;
}).collect(Collectors.toList());
Boolean updateBoolean = purchaseOrderDomainService.batchUpdate(purchaseOrderDOS);
//2数据处理采购订单处理成供应链订单
List<ScmOrderDO> scmOrderDOS = purchaseOrderPOS.stream().map(purchaseOrderPO -> {
ScmOrderDO scmOrderDO = new ScmOrderDO();
scmOrderDO.setCreateBy(ObjectUtil.defaultIfNull(userId, new Long("0")));
scmOrderDO.setCreateByName(userName);
scmOrderDO.setCreateTime(new Date());
scmOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
scmOrderDO.setScmSource(1);
scmOrderDO.setOrderId(purchaseOrderPO.getId());
scmOrderDO.setScmNo(OrderSequence.getOrderCode(OrderConstant.SCM_NO_PREFIX));
return scmOrderDO;
}).collect(Collectors.toList());
Boolean insertBoolean = false;
if (Boolean.TRUE.equals(updateBoolean)) {
insertBoolean = scmOrderDomainService.batchInsert(scmOrderDOS);
}
return insertBoolean;
}
@Transactional
public Boolean cancelSco(List<Long> ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();
//查询所有的采购订单信息
List<PurchaseOrderPO> purchaseOrderPOS = purchaseOrderDomainService.getInfo(ids);
//判断一下是否生成供应链订单未生成则不需要取消
List<PurchaseOrderPO> purchaseCollect = purchaseOrderPOS.stream().filter(purchaseOrderPO -> purchaseOrderPO.getOrderState() < 4)
.collect(Collectors.toList());
if (!purchaseCollect.isEmpty()) {
throw new ServiceException("供应链订单尚未生成,无需进行取消");
}
//根据采购订单查询作业任务
List<TaskOrderPO> taskOrderPOS = taskOrderDomainService.getInfosByOrderId(ids);
//过滤作业任务如果作业任务包含未下发/已下发/已完成 则不允许取消作业任务
List<TaskOrderPO> collect = taskOrderPOS.stream().filter(taskOrderPO -> taskOrderPO.getTaskStatus() == 0 ||
taskOrderPO.getTaskStatus() == 1 || taskOrderPO.getTaskStatus() == 2).collect(Collectors.toList());
if (!collect.isEmpty()) {
throw new ServiceException("该订单已生成作业任务,当前无法进行供应链订单的取消操作");
}
//查询所有的供应链订单信息,根据采购单ID
List<ScmOrderPO> scmOrderPOS = scmOrderDomainService.getInfosByOrderId(ids);
//修改供应链订单状态修改未已取消状态
List<ScmOrderDO> scmOrderDOS = scmOrderPOS.stream().map(scmOrderPO -> {
ScmOrderDO scmOrderDO = new ScmOrderDO();
scmOrderDO.setId(scmOrderPO.getId());
scmOrderDO.setOrderState(7);
scmOrderDO.setUpdateTime(new Date());
scmOrderDO.setUpdateBy(loginUser.getUserid());
scmOrderDO.setUpdateByName(loginUser.getUsername());
return scmOrderDO;
}).collect(Collectors.toList());
if (scmOrderDOS.isEmpty()) {
throw new ServiceException("未查询到供应链订单");
}
Boolean scm = scmOrderDomainService.batchUpdate(scmOrderDOS);
// 修改采购订单采购订单修改为已审核状态下
List<PurchaseOrderDO> purchaseOrderDOS = purchaseOrderPOS.stream().map(purchaseOrderPO -> {
PurchaseOrderDO purchaseOrderDO = new PurchaseOrderDO();
purchaseOrderDO.setId(purchaseOrderPO.getId());
purchaseOrderDO.setOrderState(2);
purchaseOrderDO.setUpdateTime(new Date());
purchaseOrderDO.setUpdateBy(loginUser.getUserid());
purchaseOrderDO.setUpdateByName(loginUser.getUsername());
return purchaseOrderDO;
}).collect(Collectors.toList());
if (Boolean.TRUE.equals(scm)) {
return purchaseOrderDomainService.batchUpdate(purchaseOrderDOS);
}
return false;
}
}
@@ -0,0 +1,74 @@
package com.mhd.oms.application.service.receiptInfo;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
import com.mhd.oms.domain.receiptInfo.service.ReceiptInfoDomainService;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 收货信息ApplicationService
*
* @author gen
* @date 2024-05-16
*/
@Service
@Slf4j
public class ReceiptInfoApplicationService {
@Autowired
private ReceiptInfoDomainService receiptInfoDomainService;
/**
* 分页查询收货信息列表
*/
public List<ReceiptInfoPO> queryList(ReceiptInfoDO receiptInfoDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
receiptInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return receiptInfoDomainService.queryList(receiptInfoDO);
}
/**
* 新增收货信息
*/
public Boolean insert(ReceiptInfoDO receiptInfoDO) {
return receiptInfoDomainService.insert(receiptInfoDO);
}
/**
* 修改收货信息
*/
public Boolean update(ReceiptInfoDO receiptInfoDO) {
return receiptInfoDomainService.update(receiptInfoDO);
}
/**
* 批量删除收货信息
*/
public boolean delete(Long[] ids) {
return receiptInfoDomainService.delete(ids);
}
/**
* 获取收货信息详细信息
*/
public ReceiptInfoPO getInfo(Long id)
{
return receiptInfoDomainService.getInfo(id);
}
}
@@ -0,0 +1,537 @@
package com.mhd.oms.application.service.salesOrder;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.github.pagehelper.util.StringUtil;
import com.mhd.common.core.enums.DictCode;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.OrderSequence;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.constant.OrderConstant;
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
import com.mhd.oms.domain.deliveryInfo.service.DeliveryInfoDomainService;
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
import com.mhd.oms.domain.goods.service.GoodsDomainService;
import com.mhd.oms.domain.interceptOrder.repository.todo.InterceptOrderDO;
import com.mhd.oms.domain.interceptOrder.service.InterceptOrderDomainService;
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
import com.mhd.oms.domain.logistics.service.LogisticsDomainService;
import com.mhd.oms.domain.orderType.repository.po.OrderTypePO;
import com.mhd.oms.domain.orderType.service.OrderTypeDomainService;
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
import com.mhd.oms.domain.receiptInfo.service.ReceiptInfoDomainService;
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderDetailsPO;
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderPO;
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderAddDO;
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderAuditDO;
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderDO;
import com.mhd.oms.domain.salesOrder.service.SalesOrderDomainService;
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
import com.mhd.oms.domain.scmOrder.repository.todo.ScmOrderDO;
import com.mhd.oms.domain.scmOrder.service.ScmOrderDomainService;
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
import com.mhd.oms.domain.settlement.service.SettlementDomainService;
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
import com.mhd.oms.domain.taskOrder.service.TaskOrderDomainService;
import com.mhd.oms.infrastructure.feign.vo.SysDictDataVo;
import com.mhd.oms.interfaces.dto.salesOrder.SalesOrderExcelDTO;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 销售订单ApplicationService
*
* @author gen
* @date 2024-06-08
*/
@Service
@Slf4j
public class SalesOrderApplicationService {
@Autowired
private SalesOrderDomainService salesOrderDomainService;
@Resource
private ScmOrderDomainService scmOrderDomainService;
@Resource
private TaskOrderDomainService taskOrderDomainService;
@Resource
private OrderTypeDomainService orderTypeDomainService;//订单类型关系
@Resource
private SystemServiceFeign systemServiceFeign;
@Resource
private SettlementDomainService settlementDomainService;
@Resource
private DeliveryInfoDomainService deliveryInfoDomainService;
@Resource
private ReceiptInfoDomainService receiptInfoDomainService;
@Resource
private LogisticsDomainService logisticsDomainService;
@Resource
private GoodsDomainService goodsDomainService;
@Resource
private InterceptOrderDomainService interceptOrderDomainService;
/**
* 分页查询销售订单列表
*/
public List<SalesOrderPO> queryList(SalesOrderDO salesOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
salesOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
salesOrderDO.setSource(0);
return salesOrderDomainService.queryList(salesOrderDO);
}
/**
* 订单池查询source 等于 1
* @param salesOrderDO
* @return
*/
public List<SalesOrderPO> listPool(SalesOrderDO salesOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
salesOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
salesOrderDO.setSource(1);
return salesOrderDomainService.queryList(salesOrderDO);
}
/**
* 新增销售订单
*/
@Transactional(rollbackFor = Exception.class)
public Boolean insert(SalesOrderAddDO salesOrderAddDO) {
//获取当前登录人获取当前登录人的租户
LoginUser loginUser = SecurityUtils.getLoginUser();
//1销售订单基本信息保存
SalesOrderDO salesOrderDO = salesOrderAddDO.getSalesOrderDO();
//查询订单关系表信息
OrderTypePO orderTypePO = orderTypeDomainService.getInfo(salesOrderDO.getOrderTypeId());
salesOrderDO.setJobTaskTypeId(orderTypePO.getJobTaskTypeId());
salesOrderDO.setJobTaskType(orderTypePO.getJobTaskType());
salesOrderDO.setOrderType(orderTypePO.getOrderType());
salesOrderDO.setDeliverySystem(orderTypePO.getDeliverySystem());
salesOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
Long orderId = salesOrderDomainService.insertReturnId(salesOrderDO);
//2销售订单结算信息保存
SettlementDO settlementDo = salesOrderAddDO.getSettlementDO();
//数据字典信息获取结算方式支付状态
AjaxResult settlementDict = systemServiceFeign.selectListByDictType(DictCode.OMS_SETTLE_WAY.getCode());
if (!"200".equals(String.valueOf(settlementDict.get("code")))) {
throw new ServiceException("字典信息(结算方式-OMS)获取失败");
}
List<SysDictDataVo> settlementDictList = JSONUtil.toList(JSONUtil.toJsonStr(settlementDict.get("data")), SysDictDataVo.class);
Map<String, String> settlementDictListDictMap = settlementDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!settlementDictListDictMap.containsKey(settlementDo.getSettlementWayId())) {
throw new ServiceException("结算方式未找到");
}
AjaxResult payStateDict = systemServiceFeign.selectListByDictType(DictCode.OMS_PYA_STATE.getCode());
if (!"200".equals(String.valueOf(payStateDict.get("code")))) {
throw new ServiceException("字典信息(支付状态-OMS)获取失败");
}
List<SysDictDataVo> payStateDictList = JSONUtil.toList(JSONUtil.toJsonStr(payStateDict.get("data")), SysDictDataVo.class);
Map<String, String> payStateDictMap = payStateDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!payStateDictMap.containsKey(settlementDo.getPayStatusId())) {
throw new ServiceException("支付状态未找到");
}
settlementDo.setOrderId(orderId);
settlementDo.setSettlementWay(settlementDictListDictMap.get(settlementDo.getSettlementWayId()));
settlementDo.setPayStatus(payStateDictMap.get(settlementDo.getPayStatusId()));
settlementDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
settlementDomainService.insert(settlementDo);
//3销售订单发货信息保存
DeliveryInfoDO deliveryInfoDo = salesOrderAddDO.getDeliveryInfoDO();
deliveryInfoDo.setOrderId(orderId);
deliveryInfoDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
deliveryInfoDomainService.insert(deliveryInfoDo);
//4销售订单收货信息保存
ReceiptInfoDO receiptInfoDo = salesOrderAddDO.getReceiptInfoDO();
receiptInfoDo.setOrderId(orderId);
receiptInfoDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
receiptInfoDomainService.insert(receiptInfoDo);
//5销售订单物流信息保存
LogisticsDO logisticsDo = salesOrderAddDO.getLogisticsDO();
logisticsDo.setOrderId(orderId);
logisticsDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
if(StringUtil.isNotEmpty(logisticsDo.getShippingTypeId())){
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.OMS_TRANSPORT_TYPE.getCode());
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
throw new ServiceException("字典信息(运输方式-OMS)获取失败");
}
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!transportTypeDictMap.containsKey(logisticsDo.getShippingTypeId())) {
throw new ServiceException("运输方式未找到");
}
logisticsDo.setShippingType(transportTypeDictMap.get(logisticsDo.getShippingTypeId()));
}
logisticsDomainService.insert(logisticsDo);
//6销售订单物料信息保存
List<GoodsDO> goodsDOList = salesOrderAddDO.getGoodsDOS();
//6.1物料信息删除
goodsDomainService.deleteByOrderId(orderId);
//6.1物料信息保存
goodsDOList.forEach(goodsDO -> {
goodsDO.setOrderId(orderId);
goodsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
});
goodsDomainService.batchInsert(goodsDOList);
return true;
}
/**
* 修改销售订单
*/
public Boolean update(SalesOrderAddDO salesOrderAddDO) {
//1采购订单基本信息保存
SalesOrderDO salesOrderDO = salesOrderAddDO.getSalesOrderDO();
List<GoodsDO> goodsDOList = salesOrderAddDO.getGoodsDOS();
//查询订单类型信息
OrderTypePO orderTypePO = orderTypeDomainService.getInfo(salesOrderDO.getOrderTypeId());
salesOrderDO.setJobTaskTypeId(orderTypePO.getJobTaskTypeId());
salesOrderDO.setJobTaskType(orderTypePO.getJobTaskType());
salesOrderDO.setOrderType(orderTypePO.getOrderType());
salesOrderDO.setDeliverySystem(orderTypePO.getDeliverySystem());
//物料信息
//String goodNames = goodsDOList.stream().map(GoodsDO::getGoodsName).collect(Collectors.joining(","));
//物料数量
//Integer goodSum = goodsDOList.stream().mapToInt(GoodsDO::getMaterialUnitEaQuantity).sum();
//salesOrderDO.setMaterialInfo(goodNames);
//salesOrderDO.setMaterialNum(goodSum);
salesOrderDomainService.update(salesOrderDO);
//2采购订单结算信息保存
SettlementDO settlementDo = salesOrderAddDO.getSettlementDO();
//数据字典信息获取结算方式支付状态
AjaxResult settlementDict = systemServiceFeign.selectListByDictType(DictCode.OMS_SETTLE_WAY.getCode());
if (!"200".equals(String.valueOf(settlementDict.get("code")))) {
throw new ServiceException("字典信息(结算方式-OMS)获取失败");
}
List<SysDictDataVo> settlementDictList = JSONUtil.toList(JSONUtil.toJsonStr(settlementDict.get("data")), SysDictDataVo.class);
Map<String, String> settlementDictListDictMap = settlementDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!settlementDictListDictMap.containsKey(settlementDo.getSettlementWayId())) {
throw new ServiceException("结算方式未找到");
}
AjaxResult payStateDict = systemServiceFeign.selectListByDictType(DictCode.OMS_PYA_STATE.getCode());
if (!"200".equals(String.valueOf(payStateDict.get("code")))) {
throw new ServiceException("字典信息(支付状态-OMS)获取失败");
}
List<SysDictDataVo> payStateDictList = JSONUtil.toList(JSONUtil.toJsonStr(payStateDict.get("data")), SysDictDataVo.class);
Map<String, String> payStateDictMap = payStateDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!payStateDictMap.containsKey(settlementDo.getPayStatusId())) {
throw new ServiceException("支付状态未找到");
}
settlementDo.setOrderId(salesOrderDO.getId());
settlementDo.setSettlementWay(settlementDictListDictMap.get(settlementDo.getSettlementWayId()));
settlementDo.setPayStatus(payStateDictMap.get(settlementDo.getPayStatusId()));
if(settlementDo.getId() != null){//如果ID不为空则走修改方法
settlementDomainService.update(settlementDo);
} else {
settlementDomainService.insert(settlementDo);
}
//3销售订单发货信息保存
DeliveryInfoDO deliveryInfoDo = salesOrderAddDO.getDeliveryInfoDO();
deliveryInfoDo.setOrderId(salesOrderDO.getId());
if (deliveryInfoDo.getId() != null) {
deliveryInfoDomainService.update(deliveryInfoDo);
} else {
deliveryInfoDomainService.insert(deliveryInfoDo);
}
//4销售订单收货信息保存
ReceiptInfoDO receiptInfoDo = salesOrderAddDO.getReceiptInfoDO();
receiptInfoDo.setOrderId(salesOrderDO.getId());
if (receiptInfoDo.getOrderId() != null) {
receiptInfoDomainService.update(receiptInfoDo);
} else {
receiptInfoDomainService.insert(receiptInfoDo);
}
//5销售订单物流信息保存
LogisticsDO logisticsDo = salesOrderAddDO.getLogisticsDO();
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.OMS_TRANSPORT_TYPE.getCode());
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
throw new ServiceException("字典信息(运输方式-OMS)获取失败");
}
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
if (!transportTypeDictMap.containsKey(logisticsDo.getShippingTypeId())) {
throw new ServiceException("运输方式未找到");
}
logisticsDo.setOrderId(salesOrderDO.getId());
logisticsDo.setShippingType(transportTypeDictMap.get(logisticsDo.getShippingTypeId()));
if (logisticsDo.getId() != null) {
logisticsDomainService.update(logisticsDo);
} else {
logisticsDomainService.insert(logisticsDo);
}
//6销售订单物料信息保存
//6.1物料信息删除
goodsDomainService.deleteByOrderId(salesOrderDO.getId());
//6.1物料信息保存
goodsDOList.forEach(goodsDO -> goodsDO.setOrderId(salesOrderDO.getId()));
goodsDomainService.batchInsert(goodsDOList);
return true;
}
/**
* 批量删除销售订单
*/
public boolean delete(Long[] ids) {
return salesOrderDomainService.delete(ids);
}
/**
* 获取销售订单详细信息
*/
public SalesOrderPO getInfo(Long id)
{
return salesOrderDomainService.getInfo(id);
}
public Boolean createSco(List<Long> ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
//供应链订单号
String scmNo = OrderSequence.getOrderCode(OrderConstant.SCM_NO_PREFIX);
String userName = loginUser.getUsername();
// 获取登录人id
Long userId = loginUser.getUserid();
//1先查询销售订单的基本信息
List<SalesOrderPO> salesOrderPOS = salesOrderDomainService.getInfos(ids);
if (salesOrderPOS.isEmpty()) {
throw new ServiceException("未查询到匹配的销售订单信息");
}
//2销售订单只有在已审核状态下才可以生成供应链订单
List<SalesOrderPO> stateCount = salesOrderPOS.stream().filter(e -> e.getOrderState() != 2).collect(Collectors.toList());
if (!stateCount.isEmpty()) {
throw new ServiceException("已审核状态下才可以生成供应链订单");
}
//3更新销售订单的状态
List<SalesOrderDO> salesOrderDOS = salesOrderPOS.stream().map(salesOrderPO -> {
SalesOrderDO salesOrderDO = new SalesOrderDO();
BeanUtils.copyProperties(salesOrderPO, salesOrderDO);
salesOrderDO.setOrderState(4);
salesOrderDO.setScoNo(scmNo);//回填供应链订单号
return salesOrderDO;
}).collect(Collectors.toList());
//4批量更新销售订单
Boolean updateBoolean = salesOrderDomainService.batchUpdate(salesOrderDOS);
//5数据处理销售订单处理成供应链订单
List<ScmOrderDO> scmOrderDOS = salesOrderPOS.stream().map(salesOrderPO -> {
ScmOrderDO scmOrderDO = new ScmOrderDO();
scmOrderDO.setCreateBy(ObjectUtil.defaultIfNull(userId, new Long("0")));
scmOrderDO.setCreateByName(userName);
scmOrderDO.setCreateTime(new Date());
scmOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
scmOrderDO.setScmSource(2);
scmOrderDO.setOrderId(salesOrderPO.getId());
scmOrderDO.setScmNo(scmNo);
return scmOrderDO;
}).collect(Collectors.toList());
Boolean insertBoolean = false;
if (Boolean.TRUE.equals(updateBoolean)) {
insertBoolean = scmOrderDomainService.batchInsert(scmOrderDOS);
}
return insertBoolean;
}
public Boolean audit(SalesOrderAuditDO salesOrderAuditDO) {
return salesOrderDomainService.audit(salesOrderAuditDO);
}
public Boolean cancelAudit(SalesOrderAuditDO salesOrderAuditDO) {
return salesOrderDomainService.cancelAudit(salesOrderAuditDO);
}
public Boolean cancelSco(List<Long> ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();
//查询所有的销售订单信息
List<SalesOrderPO> salesOrderPOS = salesOrderDomainService.getInfos(ids);
//判断一下是否生成供应链订单未生成则不需要取消
List<SalesOrderPO> salesCollect = salesOrderPOS.stream().filter(salesOrderPO -> salesOrderPO.getOrderState() < 4)
.collect(Collectors.toList());
if (!salesCollect.isEmpty()) {
throw new ServiceException("供应链订单尚未生成,无需进行取消");
}
//根据采购订单查询作业任务
List<TaskOrderPO> taskOrderPOS = taskOrderDomainService.getInfosByOrderId(ids);
//过滤作业任务如果作业任务包含未下发/已下发/已完成 则不允许取消作业任务
List<TaskOrderPO> collect = taskOrderPOS.stream().filter(taskOrderPO -> taskOrderPO.getTaskStatus() == 0 ||
taskOrderPO.getTaskStatus() == 1 || taskOrderPO.getTaskStatus() == 2).collect(Collectors.toList());
if (!collect.isEmpty()) {
throw new ServiceException("订单已生成作业任务,当前无法进行供应链订单的取消操作");
}
//查询所有的供应链订单信息,根据采购单ID
List<ScmOrderPO> scmOrderPOS = scmOrderDomainService.getInfosByOrderId(ids);
//修改供应链订单状态修改未已取消状态
List<ScmOrderDO> scmOrderDOS = scmOrderPOS.stream().map(scmOrderPO -> {
ScmOrderDO scmOrderDO = new ScmOrderDO();
scmOrderDO.setId(scmOrderPO.getId());
scmOrderDO.setOrderState(7);
scmOrderDO.setUpdateTime(new Date());
scmOrderDO.setUpdateBy(loginUser.getUserid());
scmOrderDO.setUpdateByName(loginUser.getUsername());
return scmOrderDO;
}).collect(Collectors.toList());
if (scmOrderDOS.isEmpty()) {
throw new ServiceException("未查询到供应链订单");
}
Boolean scm = scmOrderDomainService.batchUpdate(scmOrderDOS);
// 修改销售订单销售订单修改为已审核状态下
List<SalesOrderDO> salesOrderDOS = salesOrderPOS.stream().map(salesOrderPO -> {
SalesOrderDO salesOrderDO = new SalesOrderDO();
salesOrderDO.setId(salesOrderPO.getId());
salesOrderDO.setOrderState(2);
salesOrderDO.setScoNo("");
salesOrderDO.setUpdateTime(new Date());
salesOrderDO.setUpdateBy(loginUser.getUserid());
salesOrderDO.setUpdateByName(loginUser.getUsername());
return salesOrderDO;
}).collect(Collectors.toList());
if (Boolean.TRUE.equals(scm)) {
return salesOrderDomainService.batchUpdate(salesOrderDOS);
}
return false;
}
@Transactional
public Boolean interceptOrder(List<Long> idList) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
// 查询销售订单列表下所有的任务组
Map<Long, List<TaskOrderPO>> taskMapGroupByOrderId = taskOrderDomainService.getMapByOrderIdList(idList, OrderConstant.SCM_SOURCE_2);
// 遍历采购订单下的任务信息有已下发已完成未下发已合并的保存到拦截表失败否则更改为任务(排除已取消)供应链订单采购订单状态为已拦截
taskMapGroupByOrderId.forEach((k,v) -> {
SalesOrderPO salesOrderPO = salesOrderDomainService.getInfo(k);
if(ArrayUtil.contains(OrderConstant.PUR_STATUS_GROUP_UNABLE_INTERCEPT, salesOrderPO.getOrderState())){
throw new ServiceException(String.format("【%s】当前订单状态无需进行拦截!",salesOrderPO.getOrderNo()));
//break;
}
// 保存订单拦截表
InterceptOrderDO interceptOrderDO = interceptOrderDomainService.saveInterceptOrder(k, v);
// 拦截成功修改其他表数据
if(OrderConstant.INTERCEPT_STATUS_1.equals(interceptOrderDO.getInterceptState())){
// 采购订单修改为已拦截
salesOrderDomainService.updateStateById(k, OrderConstant.PUR_STATUS_8);
// 供应链订单修改为已拦截
scmOrderDomainService.interceptByOrderId(k);
// 作业任务修改为已拦截
taskOrderDomainService.interceptByOrderId(k);
}
});
return true;
}
public SalesOrderDetailsPO getetails(Long id) {
return salesOrderDomainService.getetails(id);
}
@Transactional(rollbackFor = Exception.class)
public void importSalesOrder(List<SalesOrderExcelDTO> salesExcelList) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
if (CollUtil.isEmpty(salesExcelList)) {
throw new ServiceException("导入信息为空");
}
List<SettlementDO> settlementDOList = new ArrayList<>();
List<DeliveryInfoDO> deliveryInfoDOList = new ArrayList<>();
List<ReceiptInfoDO> receiptInfoDOList = new ArrayList<>();
List<LogisticsDO> logisticsDOList = new ArrayList<>();
List<GoodsDO> goodsDOList = new ArrayList<>();
// =================== 遍历导入数据保存销售订单并将其余表数据处理为可批量插入的数据 =========================
salesExcelList.forEach( x -> {
// 保存销售订单
SalesOrder salesOrder = salesOrderDomainService.saveFromImportSalesOrder(x);
// 结算信息保存到 settlementDOList 列表中进行批量保存
settlementDomainService.listAddFromImportSalesOrder(settlementDOList, x, salesOrder);
// 发货信息保存到 deliveryInfoDOList 列表中进行批量保存
deliveryInfoDomainService.listAddFromImportSalesOrder(deliveryInfoDOList, x, salesOrder);
// 收货信息保存到 receiptInfoDOList 列表中进行批量保存
receiptInfoDomainService.listAddFromImportSalesOrder(receiptInfoDOList, x, salesOrder);
// 物流信息保存到 logisticsDOList 列表中进行批量保存
logisticsDomainService.listAddFromImportSalesOrder(logisticsDOList, x, salesOrder);
// 物料信息保存到 goodsDOList列表中进行批量保存导入的每个订单只能有一条明细
goodsDomainService.listAddFromImportSalesOrder(goodsDOList, x, salesOrder);
});
// ================== 列表存在数据则保存 ==================
if(settlementDOList.size() > 0){
settlementDomainService.batchInsert(settlementDOList);
}
if(deliveryInfoDOList.size() > 0){
deliveryInfoDomainService.batchInsert(deliveryInfoDOList);
}
if(receiptInfoDOList.size() > 0){
receiptInfoDomainService.batchInsert(receiptInfoDOList);
}
if(logisticsDOList.size() > 0){
logisticsDomainService.batchInsert(logisticsDOList);
}
if(goodsDOList.size() > 0){
goodsDomainService.batchInsert(goodsDOList);
}
}
}
@@ -0,0 +1,330 @@
package com.mhd.oms.application.service.scmOrder;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.constant.OrderConstant;
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
import com.mhd.oms.domain.goods.service.GoodsDomainService;
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderDetailsPO;
import com.mhd.oms.domain.purchaseOrder.service.PurchaseOrderDomainService;
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderPO;
import com.mhd.oms.domain.salesOrder.service.SalesOrderDomainService;
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
import com.mhd.oms.domain.scmOrder.repository.todo.ScmOrderDO;
import com.mhd.oms.domain.scmOrder.service.ScmOrderDomainService;
import com.mhd.oms.domain.taskOrder.repository.po.TaskUpperDataPO;
import com.mhd.oms.domain.taskOrder.repository.todo.CreateTaskOrderDO;
import com.mhd.oms.domain.taskOrder.repository.todo.TaskOrderDO;
import com.mhd.oms.domain.taskOrder.service.TaskOrderDomainService;
import com.mhd.oms.interfaces.dto.taskOrder.CreateTaskOrderGoodsInfoDTO;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* 供应链订单ApplicationService
*
* @author gen
* @date 2024-05-21
*/
@Service
@Slf4j
public class ScmOrderApplicationService {
@Autowired
private ScmOrderDomainService scmOrderDomainService;
@Resource
private GoodsDomainService goodsDomainService;
@Resource
private PurchaseOrderDomainService purchaseOrderDomainService;
@Resource
private SalesOrderDomainService salesOrderDomainService;
@Resource
private TaskOrderDomainService taskOrderDomainService;
/**
* 分页查询供应链订单列表
*/
public List<ScmOrderPO> queryList(ScmOrderDO scmOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
scmOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return scmOrderDomainService.queryList(scmOrderDO);
}
/**
* 新增供应链订单
*/
public Boolean insert(ScmOrderDO scmOrderDO) {
return scmOrderDomainService.insert(scmOrderDO);
}
/**
* 修改供应链订单
*/
public Boolean update(ScmOrderDO scmOrderDO) {
return scmOrderDomainService.update(scmOrderDO);
}
/**
* 批量删除供应链订单
*/
public boolean delete(Long[] ids) {
return scmOrderDomainService.delete(ids);
}
/**
* 获取供应链订单详细信息
*/
public ScmOrderPO getInfo(Long id)
{
return scmOrderDomainService.getInfo(id);
}
/**
* 生成作业任务
*/
@Transactional(rollbackFor = Exception.class)
public void createTaskOrder(CreateTaskOrderDO createTaskOrderDO) {
// ============== 供应链订单及任务上层数据 ===========
ScmOrderPO scmOrder = scmOrderDomainService.getInfo(createTaskOrderDO.getScmId());
TaskUpperDataPO upperData = new TaskUpperDataPO();
// =================== 校验+数据获取 ==================
if(ObjectUtil.isNull(scmOrder)){
throw new ServiceException("未获取到供应链订单信息!");
}
if(!ArrayUtil.contains(OrderConstant.SCM_STATUS_GROUP_CAN_GENERATE_TASK, scmOrder.getOrderState())) {
throw new ServiceException("当前供应链订单状态不可生成作业任务!");
}
// 获取任务上层数据采购订单销售订单等
getTaskUpperData(upperData, scmOrder);
// =================== 作业任务处理 ===================
ArrayList<TaskOrderDO> taskOrderList = new ArrayList<>();
createTaskOrderDO.getGoodsInfoList().forEach(
x -> handleTaskOrderFromCreateTaskOrder(taskOrderList, x, createTaskOrderDO, upperData)
);
// ================= 作业任务数据持久化 ================
taskOrderDomainService.batchInsert(taskOrderList);
// ================== 供应链订单状态修改 ==============
updateScmOrderFromCreateTaskOrder(createTaskOrderDO, upperData, taskOrderList.size());
}
/**
* 获取任务的上层数据根据供应链订单的来源判断获取采购订单|销售订单
*/
private void getTaskUpperData(TaskUpperDataPO upperData, ScmOrderPO scmOrder) {
upperData.setScmOrder(scmOrder);
if(OrderConstant.SCM_SOURCE_1.equals(scmOrder.getScmSource())){
PurchaseOrderDetailsPO purchaseOrderDetails = purchaseOrderDomainService.getInfo(scmOrder.getOrderId());
if(ObjectUtil.isNull(purchaseOrderDetails) || ObjectUtil.isNull(purchaseOrderDetails.getPurchaseOrderPO())){
throw new ServiceException("未获取到采购订单信息!");
}
upperData.setPurOrderPo(purchaseOrderDetails.getPurchaseOrderPO());
}
else if(OrderConstant.SCM_SOURCE_2.equals(scmOrder.getScmSource())){
SalesOrderPO salesOrderPo = salesOrderDomainService.getInfo(scmOrder.getOrderId());
if(ObjectUtil.isNull(salesOrderPo)){
throw new ServiceException("未获取到采购订单信息!");
}
upperData.setSalesOrderPo(salesOrderPo);
}
else{
throw new ServiceException("错误的供应链订单来源!");
}
}
/**
* 生成作业任务 - 判断并更新上游供应链订单对应数据状态部分生成作业任务|全部生成作业任务
*
* @param createTaskOrderDO - 生成作业任务DO
* @param upperData - 采购订单数据
* @param taskNum - 本次生成的作业任务数量
*/
private void updateScmOrderFromCreateTaskOrder(CreateTaskOrderDO createTaskOrderDO, TaskUpperDataPO upperData, Integer taskNum) {
// =============== 数据初始化 =============
ScmOrderPO scmOrder = upperData.getScmOrder();
// 供应链订单全部完成生成标志
AtomicBoolean completeFlag = new AtomicBoolean(true);
// ========= 查询订单下货物列表 ============
GoodsDO goodsDO = new GoodsDO();
if(OrderConstant.SCM_SOURCE_1.equals(scmOrder.getScmSource())){
goodsDO.setOrderId(upperData.getPurOrderPo().getId());
}
else if(OrderConstant.SCM_SOURCE_2.equals(scmOrder.getScmSource())){
goodsDO.setOrderId(upperData.getSalesOrderPo().getId());
}
List<GoodsPO> goodsList = goodsDomainService.queryList(goodsDO);
// ============== 遍历货物列表货物对应货物在任务重的数量存在不相等的则说明供应链订单未全部生成 =================
goodsList.forEach(x -> {
BigDecimal totalEffectiveNum = taskOrderDomainService.queryEffectiveNumByScmId(createTaskOrderDO.getScmId(), x.getId());
if(BigDecimal.valueOf(x.getMaterialUnitEaQuantity()).compareTo(totalEffectiveNum) != 0){
completeFlag.set(false);
}
});
// ==================== 更新供应链订单数据 ======================
ScmOrderDO scmOrderDO = new ScmOrderDO();
BeanUtils.copyProperties(scmOrder, scmOrderDO, IgnoreNullUtil.getNullPropertyNames(scmOrder));
scmOrderDO.setOrderState(completeFlag.get() ? OrderConstant.SCM_STATUS_4 : OrderConstant.SCM_STATUS_3);
scmOrderDO.setTaskNum(scmOrderDO.getTaskNum() + taskNum);
scmOrderDO.setActiveTaskNum(scmOrderDO.getActiveTaskNum() + taskNum);
scmOrderDomainService.update(scmOrderDO);
}
/**
* 生成作业任务 - 根据已有数据处理为要生成的作业任务DO
* @param taskOrderList - 要执行批量新增任务
* @param x - 要生成的作业任务的商品信息
* @param createTaskOrderDO - 后端接收对象
* @param upperData - 上层数据集
*/
private void handleTaskOrderFromCreateTaskOrder(ArrayList<TaskOrderDO> taskOrderList, CreateTaskOrderGoodsInfoDTO x, CreateTaskOrderDO createTaskOrderDO, TaskUpperDataPO upperData) {
if(ObjectUtil.isNull(x.getId())){
throw new ServiceException("物料ID不能为空!");
}
TaskOrderDO taskOrderDO = new TaskOrderDO();
GoodsPO goodsInfo = goodsDomainService.getInfo(x.getId());
// 作业任务中有效物料数量
BigDecimal effectiveNum = taskOrderDomainService.queryEffectiveNumByScmId(createTaskOrderDO.getScmId(), x.getId());
// 剩余物料数量
BigDecimal surplusNum = BigDecimal.valueOf(goodsInfo.getMaterialUnitEaQuantity()).subtract(effectiveNum);
if(OrderConstant.SCM_SOURCE_1.equals(upperData.getScmOrder().getScmSource())){
if(!upperData.getPurOrderPo().getId().equals(goodsInfo.getOrderId())){
throw new ServiceException("采购订单中无ID为"+ goodsInfo.getId() + "的物料信息");
}
}
else if(OrderConstant.SCM_SOURCE_2.equals(upperData.getScmOrder().getScmSource())){
if(!upperData.getSalesOrderPo().getId().equals(goodsInfo.getOrderId())){
throw new ServiceException("销售订单中无ID为"+ goodsInfo.getId() + "的物料信息");
}
}
// 生成方式为部分生成则计划作业数量必填计划数量必须小于等于剩余数量物料表数量-作业任务表已生效任务数量
if(createTaskOrderDO.getCreateType() == 0){
if(ObjectUtil.isNull(x.getPlanNum())){
throw new ServiceException("物料计划任务数量不能为空!");
}
if(BigDecimal.ZERO.compareTo(x.getPlanNum()) >= 0){
throw new ServiceException("物料计划任务数量不能小于或等于0");
}
if(x.getPlanNum().compareTo(surplusNum) > 0){
throw new ServiceException("计划数量大于剩余待生成作业任务数量!");
}
taskOrderDO.setPlanNum(x.getPlanNum());
}
// 生成方式为全部生成则将剩余数量全部作为计划数量
else if(createTaskOrderDO.getCreateType() == 1){
taskOrderDO.setPlanNum(surplusNum);
}
// 没有其他的生成方式了
else{
throw new ServiceException("错误的生成作业方式");
}
BeanUtils.copyProperties(createTaskOrderDO, taskOrderDO, IgnoreNullUtil.getNullPropertyNames(createTaskOrderDO));
taskOrderDO.setGoodsId(x.getId());
taskOrderDO.setScmId(createTaskOrderDO.getScmId());
taskOrderDO.setScmSource(upperData.getScmOrder().getScmSource());
// TODO:暂未获取仓库数据 createTaskOrderDO.getWarehouseId()
String warehouseName = "临沂仓库";
taskOrderDO.setWarehouseName(warehouseName);
if(OrderConstant.SCM_SOURCE_1.equals(upperData.getScmOrder().getScmSource())){
taskOrderDO.setOrderId(upperData.getPurOrderPo().getId());
taskOrderDO.setTaskTypeId(upperData.getPurOrderPo().getJobTaskTypeId());
taskOrderDO.setTaskTypeName(upperData.getPurOrderPo().getJobTaskType());
}
else if(OrderConstant.SCM_SOURCE_2.equals(upperData.getScmOrder().getScmSource())){
taskOrderDO.setOrderId(upperData.getSalesOrderPo().getId());
taskOrderDO.setTaskTypeId(upperData.getSalesOrderPo().getJobTaskTypeId());
taskOrderDO.setTaskTypeName(upperData.getSalesOrderPo().getJobTaskType());
}
taskOrderList.add(taskOrderDO);
}
/**
* 订单审核批量
* @param idList - 供应链订单ID列表
*/
public Boolean batchAudit(List<String> idList) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if(ObjectUtils.isNull(loginUser)){
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
// =============== 订单审核 =================
return scmOrderDomainService.batchAuditOrCancelAudit(1, idList);
}
/**
* 订单取消审核批量
* @param idList - 供应链订单ID列表
*/
public Boolean batchCancelAudit(List<String> idList) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if(ObjectUtils.isNull(loginUser)){
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
// =============== 订单取消审核 =================
return scmOrderDomainService.batchAuditOrCancelAudit(2, idList);
}
/**
* 一键生成作业任务批量
* @param idList - 要生成作业任务的供应链订单ID列表
*/
@Transactional(rollbackFor = Exception.class)
public void batchCreateTaskOrder(List<Long> idList) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if(ObjectUtils.isNull(loginUser)){
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
// 供应链订单对应的所有物料的信息列表 <供应链订单,List<全部物料列表(总物料数量作业任务中已生成物料数量)>>
Map<Long, List<ScmOrderPO>> scmGoodsMap = scmOrderDomainService.getGoodsAndTaskInfoList(idList);
// 更新供应链订单状态为全部生成应生成的作业任务列表数据处理供应链订单任务数量有效数量增加生成的作业任务数量
List<TaskOrderDO> taskOrderList = scmOrderDomainService.handlerbatchCreateTaskOrder(scmGoodsMap);
// 保存作业任务
taskOrderDomainService.batchInsert(taskOrderList);
}
}
@@ -0,0 +1,74 @@
package com.mhd.oms.application.service.settlement;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
import com.mhd.oms.domain.settlement.service.SettlementDomainService;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 结算信息ApplicationService
*
* @author gen
* @date 2024-05-16
*/
@Service
@Slf4j
public class SettlementApplicationService {
@Autowired
private SettlementDomainService settlementDomainService;
/**
* 分页查询结算信息列表
*/
public List<SettlementPO> queryList(SettlementDO settlementDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
settlementDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return settlementDomainService.queryList(settlementDO);
}
/**
* 新增结算信息
*/
public Boolean insert(SettlementDO settlementDO) {
return settlementDomainService.insert(settlementDO);
}
/**
* 修改结算信息
*/
public Boolean update(SettlementDO settlementDO) {
return settlementDomainService.update(settlementDO);
}
/**
* 批量删除结算信息
*/
public boolean delete(Long[] ids) {
return settlementDomainService.delete(ids);
}
/**
* 获取结算信息详细信息
*/
public SettlementPO getInfo(Long id)
{
return settlementDomainService.getInfo(id);
}
}
@@ -0,0 +1,315 @@
package com.mhd.oms.application.service.taskOrder;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.excel.exception.ExcelAnalysisException;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.OrderSequence;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.constant.OrderConstant;
import com.mhd.oms.domain.OrderInfoPO;
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
import com.mhd.oms.domain.goods.service.GoodsDomainService;
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderDetailsPO;
import com.mhd.oms.domain.purchaseOrder.service.PurchaseOrderDomainService;
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
import com.mhd.oms.domain.scmOrder.service.ScmOrderDomainService;
import com.mhd.oms.domain.taskOrder.repository.po.PoTaskDetailPO;
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
import com.mhd.oms.domain.taskOrder.repository.todo.TaskOrderDO;
import com.mhd.oms.domain.taskOrder.service.TaskOrderDomainService;
import com.mhd.oms.interfaces.dto.taskOrder.PoMergeTaskDTO;
import com.mhd.oms.util.SetGroupUtil;
import com.mhd.system.api.WmsServiceFeign;
import com.mhd.system.api.domain.NoticeMaterialDetailDTO;
import com.mhd.system.api.domain.NoticeOrderDTO;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 作业任务ApplicationService
*
* @author gen
* @date 2024-05-24
*/
@Service
@Slf4j
public class TaskOrderApplicationService {
@Resource
private TaskOrderDomainService taskOrderDomainService;
@Resource
private PurchaseOrderDomainService purchaseOrderDomainService;
@Resource
private ScmOrderDomainService scmOrderDomainService;
@Resource
private WmsServiceFeign wmsServiceFeign;
@Resource
private GoodsDomainService goodsDomainService;
/**
* 分页查询作业任务列表
*/
public List<TaskOrderPO> queryList(TaskOrderDO taskOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
taskOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
}
}
return taskOrderDomainService.queryList(taskOrderDO);
}
/**
* 新增作业任务
*/
public Boolean insert(TaskOrderDO taskOrderDO) {
return taskOrderDomainService.insert(taskOrderDO);
}
/**
* 修改作业任务
*/
public Boolean update(TaskOrderDO taskOrderDO) {
return taskOrderDomainService.update(taskOrderDO);
}
/**
* 批量删除作业任务
*/
public boolean delete(Long[] ids) {
return taskOrderDomainService.delete(ids);
}
/**
* 获取作业任务详细信息
*/
public TaskOrderPO getInfo(Long id)
{
return taskOrderDomainService.getInfo(id);
}
public Boolean deliverTask(List<Long> ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ids.isEmpty()) {
throw new ServiceException("传递的ID值缺失或为空");
}
//根据ids集合查询所有的任务信息包括已合并的任务信息
List<TaskOrderPO> taskOrderPOS = taskOrderDomainService.getInfoByIds(ids);
//只有未下发的任务才可以下发
List<TaskOrderPO> stateCollect = taskOrderPOS.stream().filter(taskOrderPO -> taskOrderPO.getTaskStatus() != 0).collect(Collectors.toList());
if (!stateCollect.isEmpty()) {
throw new ServiceException("尚未下发的任务方可进行下发操作");
}
List<TaskOrderDO> taskOrderDOS = new ArrayList<>();
for (TaskOrderPO taskOrderPO : taskOrderPOS) {
TaskOrderDO taskOrderDO = new TaskOrderDO();
BeanUtils.copyProperties(taskOrderPO, taskOrderDO);
//组装信息
NoticeOrderDTO noticeOrderDTO = createStockOutOrInInfo(taskOrderDO);
// 推送给WMS
AjaxResult ajaxResult = wmsServiceFeign.stockOutOrInInsert(noticeOrderDTO);
//TMS/WMS返回成功后修改任务状态改为已下发
if ("200".equals(String.valueOf(ajaxResult.get("code")))) {
taskOrderDO.setTaskStatus(1);
taskOrderDO.setUpdateTime(new Date());
if (loginUser != null){
taskOrderDO.setUpdateBy(loginUser.getUserid());
taskOrderDO.setUpdateByName(loginUser.getUsername());
}
taskOrderDOS.add(taskOrderDO);
}else {
throw new ServiceException(ajaxResult.get("msg").toString());
}
}
return taskOrderDomainService.batchUpdate(taskOrderDOS);
}
private NoticeOrderDTO createStockOutOrInInfo(TaskOrderDO taskOrderDO) {
NoticeOrderDTO noticeOrderDTO = new NoticeOrderDTO();
OrderInfoPO orderInfoPO = taskOrderDomainService.getOrderInfo(taskOrderDO);
//查询供应链订单
ScmOrderPO scmOrderPO = scmOrderDomainService.getInfo(taskOrderDO.getScmId());
noticeOrderDTO.setCustomerOrderNumber(orderInfoPO.getCustomerOrders());
noticeOrderDTO.setType(taskOrderDO.getTaskTypeId());
noticeOrderDTO.setWarehouseId(taskOrderDO.getWarehouseId());
noticeOrderDTO.setShipperId(orderInfoPO.getShipperId());
noticeOrderDTO.setOrderTypeCode(orderInfoPO.getOrderTypeCode());
noticeOrderDTO.setSupplierId(orderInfoPO.getSupplierId());
noticeOrderDTO.setCustomerId(orderInfoPO.getCustomerId());
noticeOrderDTO.setExpectTime(new Date());
noticeOrderDTO.setSupplyChainNumber(scmOrderPO.getScmNo());
noticeOrderDTO.setNullify(2);
noticeOrderDTO.setRemark("");
//物料信息赋值
GoodsPO info = goodsDomainService.getInfo(taskOrderDO.getGoodsId());
NoticeMaterialDetailDTO noticeMaterialDetailDTO = new NoticeMaterialDetailDTO();
noticeMaterialDetailDTO.setMaterialBaseInfoId(info.getMaterialBaseInfoId());
noticeMaterialDetailDTO.setQuantity(taskOrderDO.getPlanNum());
List<NoticeMaterialDetailDTO> noticeMaterialDetailDOS = new ArrayList<NoticeMaterialDetailDTO>() {{
add(noticeMaterialDetailDTO);
}};
return noticeOrderDTO;
}
public Boolean finishTask(List<Long> ids) {
//List<Long> ids = Convert.toList(Long.class, deliverTaskDTO.getIds());
List<TaskOrderDO> taskOrderDOS = new ArrayList<>();
for (Long id : ids) {
//查询作业任务信息
TaskOrderPO taskOrderPO = taskOrderDomainService.getInfo(id);
if (ObjectUtil.isNull(taskOrderPO)) {
throw new ServiceException("未查询到作业任务信息");
}
TaskOrderDO taskOrderDO = new TaskOrderDO();
BeanUtils.copyProperties(taskOrderPO, taskOrderDO);
//查询采购订单的信息
PurchaseOrderDetailsPO purchaseOrderDetailsPO = purchaseOrderDomainService.getInfo(taskOrderPO.getOrderId());
// TODO 判断一下所有任务是否都已经完成并且供应链订单已全部生成任务
log.info("组装信息");
//TMS/WMS返回成功后修改任务状态改为已下发
taskOrderDO.setTaskStatus(2);
taskOrderDOS.add(taskOrderDO);
}
return taskOrderDomainService.batchUpdate(taskOrderDOS);
}
/**
* 合并任务前置工作点击合并任务弹出合并后的列表
* @param ids
* @return
*/
public List<PoTaskDetailPO> poPreMergeTask(List<Long> ids) {
//List<Long> ids = Convert.toList(Long.class, deliverTaskDTO.getIds());
if (ids.isEmpty()) {
throw new ServiceException("传递的ID值缺失或为空");
}
//查询是否包含下发/已合并的任务如果有则无法合并任务
Integer quantityDeliver = taskOrderDomainService.getQuantityDeliver(ids);
if (quantityDeliver > 0) {
throw new ServiceException("数据内包含下发完毕/已合并的任务");
}
//查询作业任务信息
List<PoTaskDetailPO> poTaskDetailPOs = taskOrderDomainService.getPoTaskDetail(ids);
// TODO 查询任务合并规则表取用户设置的默认规则合并任务
// 目前规则写死先按照同一货主同一仓库进行任务合并
Map<String, List<PoTaskDetailPO>> groupMap = SetGroupUtil.groupingBy(poTaskDetailPOs, PoTaskDetailPO::getWarehouseId,
PoTaskDetailPO::getShipperId);
List<PoTaskDetailPO> poTaskDetailPOList = new ArrayList<>();
// Map 处理
groupMap.forEach((k, v) -> {
PoTaskDetailPO poTaskDetailPO = new PoTaskDetailPO();
if (!v.isEmpty()) {
poTaskDetailPO = v.get(0);
poTaskDetailPO.setTaskNum(v.size());
String mergeTaskNo = v.stream().map(PoTaskDetailPO::getTaskNo).collect(Collectors.joining(","));
poTaskDetailPO.setMergeTaskNo(mergeTaskNo);
poTaskDetailPOList.add(poTaskDetailPO);
}
});
return poTaskDetailPOList;
}
/**
* 合并任务
* @param poMergeTaskDTOS
* @return
*/
public Boolean poMergeTask(List<PoMergeTaskDTO> poMergeTaskDTOS) {
List<TaskOrderDO> taskOrderDOS = new ArrayList<>();
for (int i = 0; i < poMergeTaskDTOS.size(); i++) {
List<String> taskNos = Convert.toList(String.class, poMergeTaskDTOS.get(i).getMergeTaskNo());
//生成合并任务单号
String mergeTaskNo = OrderSequence.getOrderCode(OrderConstant.TASK_NO_PREFIX) + "-" + (i + 1);
//根据任务单号查询任务信息
for (String taskNo : taskNos) {
TaskOrderDO taskOrderDO = new TaskOrderDO();
TaskOrderPO taskOrderPO = taskOrderDomainService.getInfoByTaskNo(taskNo);
BeanUtils.copyProperties(taskOrderPO, taskOrderDO);
taskOrderDO.setMergeTaskNo(mergeTaskNo);
taskOrderDO.setMergeState(1);
taskOrderDOS.add(taskOrderDO);
}
}
return taskOrderDomainService.batchUpdate(taskOrderDOS);
}
/**
* 取消作业任务
* @param idList - 要取消的作业任务ID列表
*/
@Transactional(rollbackFor = ExcelAnalysisException.class)
public void cancelTaskOrder(List<Long> idList) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if(ObjectUtils.isNull(loginUser)){
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
if(idList.size() == 0){
throw new ServiceException("供应链订单ID列表不能为空");
}
// 取消任务
List<TaskOrderPO> ableCancelledScmIdList = taskOrderDomainService.cancelTaskOrder(idList);
// 更新供应链订单任务数量状态
scmOrderDomainService.updateFromCancelTask(ableCancelledScmIdList);
}
/**
* 还原合并任务
* @param ids
* @return
*/
public Boolean restoreMergeTask(List<Long> ids) {
//根据集合查询所有任务信息
List<TaskOrderPO> taskOrderPOS = taskOrderDomainService.getInfos(ids);
//只能未下发且有合并作业任务的允许还原
List<TaskOrderPO> stateCollect = taskOrderPOS.stream().filter(taskOrderPO ->
taskOrderPO.getTaskStatus() != 0 || taskOrderPO.getMergeState() == 0).collect(Collectors.toList());
if (!stateCollect.isEmpty()) {
throw new ServiceException("仅允许将处于未下发且已合并状态的任务进行还原");
}
//处理数据批量今行数据修改
List<TaskOrderDO> taskOrderDOS = taskOrderPOS.stream().map(taskOrderPO -> {
TaskOrderDO taskOrderDO = new TaskOrderDO();
BeanUtils.copyProperties(taskOrderPO, taskOrderDO);
taskOrderDO.setMergeTaskNo("");
taskOrderDO.setMergeState(0);
return taskOrderDO;
}).collect(Collectors.toList());
return taskOrderDomainService.batchUpdate(taskOrderDOS);
}
}
@@ -0,0 +1,129 @@
package com.mhd.oms.constant;
/**
* 作业任务常量
* @author Administrator
*/
public interface OrderConstant {
/** 作业任务单号前缀 */
String TASK_NO_PREFIX = "PO";
/** 供应链单号前缀 */
String SCM_NO_PREFIX = "SCM";
/** ========================== 采购订单状态 ========================== */
/** 未审核 */
Integer PUR_STATUS_1 = 1;
/** 已审核 */
Integer PUR_STATUS_2 = 2;
/** 已拒绝 */
Integer PUR_STATUS_3 = 3;
/** 已生成 */
Integer PUR_STATUS_4 = 4;
/** 部分采购 */
Integer PUR_STATUS_5 = 5;
/** 完成 */
Integer PUR_STATUS_6 = 6;
/** 已取消 */
Integer PUR_STATUS_7 = 7;
/** 已拦截 */
Integer PUR_STATUS_8 = 8;
/** ========================== 采购订单状态组 ========================== */
/** 无需拦截的状态 */
Integer[] PUR_STATUS_GROUP_UNABLE_INTERCEPT = {PUR_STATUS_6, PUR_STATUS_7, PUR_STATUS_8};
/** 不能被取消审核的状态 */
Integer[] PUR_STATUS_GROUP_UNABLE_CANCEL_AUDIT = {PUR_STATUS_1, PUR_STATUS_4, PUR_STATUS_5,PUR_STATUS_6,PUR_STATUS_7,PUR_STATUS_8};
/** ========================== 销售订单状态 ========================== */
/** 未审核 */
Integer SO_STATUS_1 = 1;
/** 已审核 */
Integer SO_STATUS_2 = 2;
/** 已拒绝 */
Integer SO_STATUS_3 = 3;
/** 已生成 */
Integer SO_STATUS_4 = 4;
/** 部分销售 */
Integer SO_STATUS_5 = 5;
/** 完成 */
Integer SO_STATUS_6 = 6;
/** 已取消 */
Integer SO_STATUS_7 = 7;
/** 已拦截 */
Integer SO_STATUS_8 = 8;
/** ========================== 销售订单状态组 ========================== */
/** 无需拦截的状态 */
Integer[] SO_STATUS_GROUP_UNABLE_INTERCEPT = {PUR_STATUS_6, PUR_STATUS_7, PUR_STATUS_8};
/** 不能被取消审核的状态 */
Integer[] SO_STATUS_GROUP_UNABLE_CANCEL_AUDIT = {PUR_STATUS_1, PUR_STATUS_4, PUR_STATUS_5,PUR_STATUS_6,PUR_STATUS_7,PUR_STATUS_8};
/** ========================== 供应链订单状态 ========================== */
/** 未审核 */
Integer SCM_STATUS_1 = 1;
/** 已审核 */
Integer SCM_STATUS_2 = 2;
/** 部分生成 */
Integer SCM_STATUS_3 = 3;
/** 全部生成 */
Integer SCM_STATUS_4 = 4;
/** 部分完成 */
Integer SCM_STATUS_5 = 5;
/** 已完成 */
Integer SCM_STATUS_6 = 6;
/** 已取消 */
Integer SCM_STATUS_7 = 7;
/** 已拦截 */
Integer SCM_STATUS_8 = 8;
/** ========================== 供应链订单状态组 ========================== */
/** 可生成作业任务的状态 */
Integer[] SCM_STATUS_GROUP_CAN_GENERATE_TASK = {SCM_STATUS_2, SCM_STATUS_3};
/** ========================== 供应链订单来源 ========================== */
/** 采购订单 */
Integer SCM_SOURCE_1 = 1;
/** 销售订单 */
Integer SCM_SOURCE_2 = 2;
/** 运输订单 */
Integer SCM_SOURCE_3 = 3;
/** ========================== 作业任务状态 ========================== */
/** 未下发 */
Integer TASK_STATUS_0 = 0;
/** 已下发 */
Integer TASK_STATUS_1 = 1;
/** 已完成 */
Integer TASK_STATUS_2 = 2;
/** 已拦截 */
Integer TASK_STATUS_3 = 3;
/** 已取消 */
Integer TASK_STATUS_4 = 4;
/** ========================== 作业任务状态组 ========================== */
/** 不可拦截状态组 */
Integer[] TASK_STATUS_GROUP_UNABLE_INTERCEPT = {TASK_STATUS_1, TASK_STATUS_2};
/** ========================== 作业任务类型 ========================== */
/** 入库 */
Integer TASK_TYPE_0 = 0;
/** 出库 */
Integer TASK_TYPE_1 = 1;
/** 运输 */
Integer TASK_TYPE_2 = 2;
/** ========================== 拦截订单状态 ========================== */
/** 无拦截 */
Integer INTERCEPT_STATUS_0 = 0;
/** 拦截成功 */
Integer INTERCEPT_STATUS_1 = 1;
/** 拦截失败 */
Integer INTERCEPT_STATUS_2 = 2;
}
@@ -0,0 +1,30 @@
package com.mhd.oms.constant;
/**
* OMS枚举
*
* @author
*/
public enum OrderEnum {
// ๑乛乛๑卡在了奇怪的地方
TEST_1("1", "1");
private final String code;
private final String info;
OrderEnum(String code, String info)
{
this.code = code;
this.info = info;
}
public String getCode()
{
return code;
}
public String getInfo()
{
return info;
}
}
@@ -0,0 +1,42 @@
package com.mhd.oms.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel(value = "订单公共类", description = "订单公共类")
public class OrderInfoPO implements Serializable {
@ApiModelProperty("订单号/商流订单号")
private String orderNo;
@ApiModelProperty("货主")
private String shipper;
@ApiModelProperty("业务订单类型")
private String orderType;
@ApiModelProperty("客户订单号")
private String customerOrders;
@ApiModelProperty("拦截状态;0未拦截1拦截成功2拦截失败")
private Integer tacklState;
@ApiModelProperty("作业任务类型名称")
private String jobTaskType;
@ApiModelProperty("货主ID")
private Long shipperId;
@ApiModelProperty("供应商ID")
private Long supplierId;
@ApiModelProperty("客户ID")
private Long customerId;
@ApiModelProperty("订单类型ID")
private Long orderTypeId;
@ApiModelProperty("入库单类型编码")
private String orderTypeCode;
}
@@ -0,0 +1,99 @@
package com.mhd.oms.domain.businessDocumentAddressMulti.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.math.BigDecimal;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 请填写功能名称对象 business_document_address_multi
*
* @author gen
* @date 2026-01-26
*/
@Data
public class BusinessDocumentAddressMulti extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String areaCode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String areaName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String address;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String longitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String latitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contactName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contactPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date layDate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layTimeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long layType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long sort;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shortName;
}
@@ -0,0 +1,43 @@
package com.mhd.oms.domain.businessDocumentAddressMulti.repository.facade;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mhd.oms.domain.businessDocumentAddressMulti.entity.BusinessDocumentAddressMulti;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.po.BusinessDocumentAddressMultiPO;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.todo.BusinessDocumentAddressMultiDO;
import java.util.List;
/**
* 请填写功能名称Service接口
*
* @author gen
* @date 2026-01-26
*/
public interface IBusinessDocumentAddressMultiService extends IService<BusinessDocumentAddressMulti>
{
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentAddressMultiPO> queryList(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO);
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO);
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO);
/**
* 批量删除请填写功能名称
*/
public Boolean delete(Long[] ids);
/**
* 查询请填写功能名称
*/
public BusinessDocumentAddressMultiPO getInfo(Long id);
}
@@ -0,0 +1,22 @@
package com.mhd.oms.domain.businessDocumentAddressMulti.repository.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.oms.domain.businessDocumentAddressMulti.entity.BusinessDocumentAddressMulti;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.po.BusinessDocumentAddressMultiPO;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.todo.BusinessDocumentAddressMultiDO;
import org.apache.ibatis.annotations.Param;
/**
* 请填写功能名称Mapper接口
*
* @author gen
* @date 2026-01-26
*/
public interface BusinessDocumentAddressMultiMapper extends BaseMapper<BusinessDocumentAddressMulti>
{
/**
* 查询请填写功能名称列表
*/
public List<BusinessDocumentAddressMultiPO> queryList(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO);
}
@@ -0,0 +1,81 @@
package com.mhd.oms.domain.businessDocumentAddressMulti.repository.persistence;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mhd.oms.domain.businessDocumentAddressMulti.entity.BusinessDocumentAddressMulti;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.facade.IBusinessDocumentAddressMultiService;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.mapper.BusinessDocumentAddressMultiMapper;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.po.BusinessDocumentAddressMultiPO;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.todo.BusinessDocumentAddressMultiDO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 请填写功能名称Service业务层处理
*
* @author gen
* @date 2026-01-26
*/
@Service
public class BusinessDocumentAddressMultiImpl extends ServiceImpl<BusinessDocumentAddressMultiMapper, BusinessDocumentAddressMulti> implements IBusinessDocumentAddressMultiService{
@Autowired
private BusinessDocumentAddressMultiMapper businessDocumentAddressMultiMapper;
/**
* 查询请填写功能名称列表
*/
@Override
public List<BusinessDocumentAddressMultiPO> queryList(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO)
{
return businessDocumentAddressMultiMapper.queryList(businessDocumentAddressMultiDO);
}
/**
* 新增请填写功能名称
*/
@Override
public Boolean insert(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO) {
BusinessDocumentAddressMulti businessDocumentAddressMulti = new BusinessDocumentAddressMulti();
BeanUtils.copyProperties(businessDocumentAddressMultiDO,businessDocumentAddressMulti);
return this.save(businessDocumentAddressMulti);
}
/**
* 修改请填写功能名称
*/
@Override
public Boolean update(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO) {
BusinessDocumentAddressMulti businessDocumentAddressMulti = new BusinessDocumentAddressMulti();
BeanUtils.copyProperties(businessDocumentAddressMultiDO,businessDocumentAddressMulti);
return this.updateById(businessDocumentAddressMulti);
}
/**
* 批量删除请填写功能名称
*/
@Override
public Boolean delete(Long[] ids ) {
List<BusinessDocumentAddressMulti> list = new ArrayList<>();
for (Long id : ids) {
BusinessDocumentAddressMulti businessDocumentAddressMulti = new BusinessDocumentAddressMulti();
businessDocumentAddressMulti.setId(id);
businessDocumentAddressMulti.setDelFlag(2);
list.add(businessDocumentAddressMulti);
}
return this.updateBatchById(list);
}
/**
* 修改请填写功能名称
*/
@Override
public BusinessDocumentAddressMultiPO getInfo(Long id) {
BusinessDocumentAddressMulti businessDocumentAddressMulti = this.getById(id);
BusinessDocumentAddressMultiPO businessDocumentAddressMultiPO = new BusinessDocumentAddressMultiPO();
BeanUtils.copyProperties(businessDocumentAddressMulti,businessDocumentAddressMultiPO);
return businessDocumentAddressMultiPO;
}
}
@@ -0,0 +1,99 @@
package com.mhd.oms.domain.businessDocumentAddressMulti.repository.po;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import com.mhd.common.core.web.domain.BaseVOEntity;
/**
* 请填写功能名称对象 business_document_address_multi
*
* @author gen
* @date 2026-01-26
*/
@Data
@ApiModel(value = "【请填写功能名称】对象", description = "【请填写功能名称】响应对象")
public class BusinessDocumentAddressMultiPO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String areaCode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String areaName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String address;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String longitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String latitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contactName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contactPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date layDate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layTimeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long layType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long sort;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shortName;
}
@@ -0,0 +1,102 @@
package com.mhd.oms.domain.businessDocumentAddressMulti.repository.todo;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 请填写功能名称对象 business_document_address_multi
*
* @author gen
* @date 2026-01-26
*/
@Data
public class BusinessDocumentAddressMultiDO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String areaCode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String areaName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String address;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String longitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String latitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contactName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contactPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date layDate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layTimeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long layType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long sort;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shortName;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
@@ -0,0 +1,64 @@
package com.mhd.oms.domain.businessDocumentAddressMulti.service;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.facade.IBusinessDocumentAddressMultiService;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.po.BusinessDocumentAddressMultiPO;
import com.mhd.oms.domain.businessDocumentAddressMulti.repository.todo.BusinessDocumentAddressMultiDO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 请填写功能名称
*
* @author gen
* @date 2026-01-26
*/
@Service
@Slf4j
public class BusinessDocumentAddressMultiDomainService {
@Autowired
private IBusinessDocumentAddressMultiService businessDocumentAddressMultiService;
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentAddressMultiPO> queryList(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO) {
return businessDocumentAddressMultiService.queryList(businessDocumentAddressMultiDO);
}
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO) {
return businessDocumentAddressMultiService.insert(businessDocumentAddressMultiDO);
}
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentAddressMultiDO businessDocumentAddressMultiDO) {
return businessDocumentAddressMultiService.update(businessDocumentAddressMultiDO);
}
/**
* 批量删除请填写功能名称
*/
public Boolean delete(Long[] ids) {
return businessDocumentAddressMultiService.delete(ids);
}
/**
* 获取请填写功能名称详细信息
*/
public BusinessDocumentAddressMultiPO getInfo(Long id)
{
return businessDocumentAddressMultiService.getInfo(id);
}
}
@@ -0,0 +1,100 @@
package com.mhd.oms.domain.businessDocumentCargoMulti.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.math.BigDecimal;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 请填写功能名称对象 business_document_cargo_multi
*
* @author gen
* @date 2026-01-26
*/
@Data
public class BusinessDocumentCargoMulti extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layInfoId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNameId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal cargoWeight;
@ApiModelProperty("货物名称")
private String cargoName;
@ApiModelProperty("货物单位ID")
private String cargoUnitId;
@ApiModelProperty("货物单位名字")
private String cargoUnitName;
@ApiModelProperty(value = "货物数量")
private BigDecimal cargoNum;
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 machineCode;
@ApiModelProperty("")
private String materialCode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orderId;
}
@@ -0,0 +1,43 @@
package com.mhd.oms.domain.businessDocumentCargoMulti.repository.facade;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.po.BusinessDocumentCargoMultiPO;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.todo.BusinessDocumentCargoMultiDO;
import java.util.List;
/**
* 请填写功能名称Service接口
*
* @author gen
* @date 2026-01-26
*/
public interface IBusinessDocumentCargoMultiService extends IService<BusinessDocumentCargoMulti>
{
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentCargoMultiPO> queryList(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO);
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO);
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO);
/**
* 批量删除请填写功能名称
*/
public Boolean delete(Long[] ids);
/**
* 查询请填写功能名称
*/
public BusinessDocumentCargoMultiPO getInfo(Long id);
}
@@ -0,0 +1,22 @@
package com.mhd.oms.domain.businessDocumentCargoMulti.repository.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.po.BusinessDocumentCargoMultiPO;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.todo.BusinessDocumentCargoMultiDO;
import org.apache.ibatis.annotations.Param;
/**
* 请填写功能名称Mapper接口
*
* @author gen
* @date 2026-01-26
*/
public interface BusinessDocumentCargoMultiMapper extends BaseMapper<BusinessDocumentCargoMulti>
{
/**
* 查询请填写功能名称列表
*/
public List<BusinessDocumentCargoMultiPO> queryList(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO);
}
@@ -0,0 +1,81 @@
package com.mhd.oms.domain.businessDocumentCargoMulti.repository.persistence;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.facade.IBusinessDocumentCargoMultiService;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.mapper.BusinessDocumentCargoMultiMapper;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.po.BusinessDocumentCargoMultiPO;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.todo.BusinessDocumentCargoMultiDO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 请填写功能名称Service业务层处理
*
* @author gen
* @date 2026-01-26
*/
@Service
public class BusinessDocumentCargoMultiImpl extends ServiceImpl<BusinessDocumentCargoMultiMapper, BusinessDocumentCargoMulti> implements IBusinessDocumentCargoMultiService{
@Autowired
private BusinessDocumentCargoMultiMapper businessDocumentCargoMultiMapper;
/**
* 查询请填写功能名称列表
*/
@Override
public List<BusinessDocumentCargoMultiPO> queryList(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO)
{
return businessDocumentCargoMultiMapper.queryList(businessDocumentCargoMultiDO);
}
/**
* 新增请填写功能名称
*/
@Override
public Boolean insert(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO) {
BusinessDocumentCargoMulti businessDocumentCargoMulti = new BusinessDocumentCargoMulti();
BeanUtils.copyProperties(businessDocumentCargoMultiDO,businessDocumentCargoMulti);
return this.save(businessDocumentCargoMulti);
}
/**
* 修改请填写功能名称
*/
@Override
public Boolean update(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO) {
BusinessDocumentCargoMulti businessDocumentCargoMulti = new BusinessDocumentCargoMulti();
BeanUtils.copyProperties(businessDocumentCargoMultiDO,businessDocumentCargoMulti);
return this.updateById(businessDocumentCargoMulti);
}
/**
* 批量删除请填写功能名称
*/
@Override
public Boolean delete(Long[] ids ) {
List<BusinessDocumentCargoMulti> list = new ArrayList<>();
for (Long id : ids) {
BusinessDocumentCargoMulti businessDocumentCargoMulti = new BusinessDocumentCargoMulti();
businessDocumentCargoMulti.setId(id);
businessDocumentCargoMulti.setDelFlag(2);
list.add(businessDocumentCargoMulti);
}
return this.updateBatchById(list);
}
/**
* 修改请填写功能名称
*/
@Override
public BusinessDocumentCargoMultiPO getInfo(Long id) {
BusinessDocumentCargoMulti businessDocumentCargoMulti = this.getById(id);
BusinessDocumentCargoMultiPO businessDocumentCargoMultiPO = new BusinessDocumentCargoMultiPO();
BeanUtils.copyProperties(businessDocumentCargoMulti,businessDocumentCargoMultiPO);
return businessDocumentCargoMultiPO;
}
}
@@ -0,0 +1,67 @@
package com.mhd.oms.domain.businessDocumentCargoMulti.repository.po;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import com.mhd.common.core.web.domain.BaseVOEntity;
/**
* 请填写功能名称对象 business_document_cargo_multi
*
* @author gen
* @date 2026-01-26
*/
@Data
@ApiModel(value = "【请填写功能名称】对象", description = "【请填写功能名称】响应对象")
public class BusinessDocumentCargoMultiPO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layInfoId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNameId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal cargoWeight;
}
@@ -0,0 +1,70 @@
package com.mhd.oms.domain.businessDocumentCargoMulti.repository.todo;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 请填写功能名称对象 business_document_cargo_multi
*
* @author gen
* @date 2026-01-26
*/
@Data
public class BusinessDocumentCargoMultiDO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String layInfoId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNameId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal cargoWeight;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
@@ -0,0 +1,64 @@
package com.mhd.oms.domain.businessDocumentCargoMulti.service;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.facade.IBusinessDocumentCargoMultiService;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.po.BusinessDocumentCargoMultiPO;
import com.mhd.oms.domain.businessDocumentCargoMulti.repository.todo.BusinessDocumentCargoMultiDO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 请填写功能名称
*
* @author gen
* @date 2026-01-26
*/
@Service
@Slf4j
public class BusinessDocumentCargoMultiDomainService {
@Autowired
private IBusinessDocumentCargoMultiService businessDocumentCargoMultiService;
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentCargoMultiPO> queryList(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO) {
return businessDocumentCargoMultiService.queryList(businessDocumentCargoMultiDO);
}
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO) {
return businessDocumentCargoMultiService.insert(businessDocumentCargoMultiDO);
}
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentCargoMultiDO businessDocumentCargoMultiDO) {
return businessDocumentCargoMultiService.update(businessDocumentCargoMultiDO);
}
/**
* 批量删除请填写功能名称
*/
public Boolean delete(Long[] ids) {
return businessDocumentCargoMultiService.delete(ids);
}
/**
* 获取请填写功能名称详细信息
*/
public BusinessDocumentCargoMultiPO getInfo(Long id)
{
return businessDocumentCargoMultiService.getInfo(id);
}
}
@@ -0,0 +1,697 @@
package com.mhd.oms.domain.businessDocumentOrder.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.math.BigDecimal;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 请填写功能名称对象 business_document_order
*
* @author gen
* @date 2026-01-26
*/
@Data
public class BusinessDocumentOrder extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createCompanyId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingAreaId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingLongitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingLatitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingUnit;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String freighterName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date loadingDate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadAreaId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadLongitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadLatitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String dischargerName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date unloadingData;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNameId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal weightMin;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal weightMax;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsUntisId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsUntis;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long transportationModeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String transportationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String serviceRequireId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String serviceRequire;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String remarks;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long waybillFrom;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isSource;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date sourceCloseTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String executorId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDelete;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String lineTitleLeft;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String lineTitleRight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String sysOrgCode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isCommon;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeMajor;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long auditStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long waybillMode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date latestBiddingTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal deliveryFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal collectedFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal uncollectedFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal collectLessFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String auditBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date auditTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String businessType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal transportationUnitPrice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long radioValue;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createrName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createrPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isElectricFence;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String wxaQrcode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointShipperId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createUserId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointShipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String signatureAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String qrCodeImgUrl;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shippingNote;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long receivableType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String thirdPartyOrderNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String dispatchOrderNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointDriverEnterpriseId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointDriverEnterprise;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cancelOrderRemark;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orderDriverId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal goodsQuantity;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsQuantityUnitId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsQuantityUnit;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String biddingUnit;
@ApiModelProperty("业务单状态 0-待审核 1-待执行 2-进行中 3-已完成 4-已取消 5-已拦截")
private Long orderStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long splicingOrderType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long splicingStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mainOrderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mainOrderNum;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mergeOrderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mergeOrderNum;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long payerType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String machineNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long stockFlag;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal infoFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long infoFeePayeeType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String infoFeePayee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long infoFeeStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String infoFeeDocumentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long orderShippingType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String recipientId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String recipientName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long settlementStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date settlementTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date paymentTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String reconciliationInnerNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String receivePaymentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String invoiceId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isInvoice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String vehicleTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String vehicleTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carrier;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carrierName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long szwlUserId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightUnitPrice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long biddingStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String biddingRemarks;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal cargoInsuranceAmount;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String destination;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightCharges;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String payer;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDeclare;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String route;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String containerType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String containerTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cardType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cardTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String externalContainerNo;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String transitPlace;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsShipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsShipperTel;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadingCompany;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contractNo;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal unloadingFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal customsFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal shortageFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal miscellaneousFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal otherFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal detentionFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal taxRate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String settlementCurrency;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal volume;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String detailContent;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsRoute;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsPort;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsContact;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsContactPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsRemark;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsCategory;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String makerCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customerCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date documentDate;
@ApiModelProperty( "审核状态 0-未审核 1-审核通过 2-已驳回")
private Long reviewStatus;
@ApiModelProperty("审核时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date reviewTime;
@ApiModelProperty("审核人id")
private Long reviewId;
@ApiModelProperty("审核人")
private String review;
@ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发 4-已取消")
private Long executeStatus;
@ApiModelProperty("执行时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date executeTime;
@ApiModelProperty("执行人id")
private Long executeId;
@ApiModelProperty("执行人")
private String executor;
@ApiModelProperty("预约单id")
private Long reservationOrderId ;
@ApiModelProperty("预约单号")
private String reservationOrderNumber;
}
@@ -0,0 +1,53 @@
package com.mhd.oms.domain.businessDocumentOrder.repository.facade;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder;
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
import java.util.List;
/**
* 请填写功能名称Service接口
*
* @author gen
* @date 2026-01-26
*/
public interface IBusinessDocumentOrderService extends IService<BusinessDocumentOrder>
{
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentOrderPO> queryList(BusinessDocumentOrderDO businessDocumentOrderDO);
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentOrderDO businessDocumentOrderDO);
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentOrderDO businessDocumentOrderDO);
/**
* 批量删除请填写功能名称
*/
public Boolean delete(Long[] ids);
public Boolean execute(Long[] ids);
public Boolean cancelExecute(Long[] ids) throws Exception;
/**
* 查询请填写功能名称
*/
public BusinessDocumentOrderPO getInfo(Long id);
public Boolean audit( Long [] ids, Long reviewStatus);
String selectByMakerCodeNc(String salesmanCodeNc);
String selectByMakerCodeNc1(String salesmanCodeNc);
}
@@ -0,0 +1,26 @@
package com.mhd.oms.domain.businessDocumentOrder.repository.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder;
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
import org.apache.ibatis.annotations.Param;
/**
* 请填写功能名称Mapper接口
*
* @author gen
* @date 2026-01-26
*/
public interface BusinessDocumentOrderMapper extends BaseMapper<BusinessDocumentOrder>
{
/**
* 查询请填写功能名称列表
*/
public List<BusinessDocumentOrderPO> queryList(BusinessDocumentOrderDO businessDocumentOrderDO);
String selectByMakerCodeNc(@Param("salesmanCodeNc") String salesmanCodeNc);
String selectByMakerCodeNc1(@Param("salesmanCodeNc") String salesmanCodeNc);
}
@@ -0,0 +1,200 @@
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;
import com.mhd.oms.domain.businessDocumentOrder.repository.facade.IBusinessDocumentOrderService;
import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper;
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;
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;
/**
* 请填写功能名称Service业务层处理
*
* @author gen
* @date 2026-01-26
*/
@Service
public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrderMapper, BusinessDocumentOrder> implements IBusinessDocumentOrderService{
@Autowired
private BusinessDocumentOrderMapper businessDocumentOrderMapper;
@Autowired
private ExecuteOrderDomainService executeOrderDomainService;
@Autowired
private ExecuteOrderMapper executeOrderMapper;
/**
* 查询请填写功能名称列表
*/
@Override
public List<BusinessDocumentOrderPO> queryList(BusinessDocumentOrderDO businessDocumentOrderDO)
{
return businessDocumentOrderMapper.queryList(businessDocumentOrderDO);
}
/**
* 新增请填写功能名称
*/
@Override
public Boolean insert(BusinessDocumentOrderDO businessDocumentOrderDO) {
BusinessDocumentOrder businessDocumentOrder = new BusinessDocumentOrder();
BeanUtils.copyProperties(businessDocumentOrderDO,businessDocumentOrder);
return this.save(businessDocumentOrder);
}
/**
* 修改请填写功能名称
*/
@Override
public Boolean update(BusinessDocumentOrderDO businessDocumentOrderDO) {
BusinessDocumentOrder businessDocumentOrder = new BusinessDocumentOrder();
BeanUtils.copyProperties(businessDocumentOrderDO,businessDocumentOrder);
return this.updateById(businessDocumentOrder);
}
/**
* 批量删除请填写功能名称
*/
@Override
public Boolean delete(Long[] ids ) {
List<BusinessDocumentOrder> list = new ArrayList<>();
for (Long id : ids) {
BusinessDocumentOrder businessDocumentOrder = new BusinessDocumentOrder();
businessDocumentOrder.setId(id);
businessDocumentOrder.setDelFlag(2);
list.add(businessDocumentOrder);
}
return this.updateBatchById(list);
}
/**
* 修改请填写功能名称
*/
@Override
public BusinessDocumentOrderPO getInfo(Long id) {
BusinessDocumentOrder businessDocumentOrder = this.getById(id);
BusinessDocumentOrderPO businessDocumentOrderPO = new BusinessDocumentOrderPO();
BeanUtils.copyProperties(businessDocumentOrder,businessDocumentOrderPO);
return businessDocumentOrderPO;
}
@Override
public Boolean audit(Long[] ids, Long reviewStatus) {
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
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);
}
}
return null;
}
@Override
public Boolean execute(Long[] ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
for (Long id:ids){
BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(businessDocumentOrder)){
businessDocumentOrder.setExecuteId(loginUser.getUserid());
businessDocumentOrder.setExecuteStatus(2L);
businessDocumentOrder.setExecuteTime(new Date());
businessDocumentOrder.setExecutor(loginUser.getUsername());
businessDocumentOrder.setOrderStatus(2L);
businessDocumentOrderMapper.updateById(businessDocumentOrder);
ExecuteOrderDO executeOrderDO=new ExecuteOrderDO();
executeOrderDO.setBusinessDocumentId(id);
executeOrderDO.setBusinessDocumentNumber(businessDocumentOrder.getGoodsNumber());
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());
executeOrderDomainService.insert(executeOrderDO);
}
}
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);
if (makerCodeNc == null){
return "";
}
return makerCodeNc;
}
@Override
public String selectByMakerCodeNc1(String salesmanCodeNc) {
String makerCodeNc = businessDocumentOrderMapper.selectByMakerCodeNc1(salesmanCodeNc);
if (makerCodeNc == null){
return "";
}
return makerCodeNc;
}
}
@@ -0,0 +1,709 @@
package com.mhd.oms.domain.businessDocumentOrder.repository.po;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import com.mhd.common.core.web.domain.BaseVOEntity;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 请填写功能名称对象 business_document_order
*
* @author gen
* @date 2026-01-26
*/
@Data
@ApiModel(value = "【请填写功能名称】对象", description = "【请填写功能名称】响应对象")
public class BusinessDocumentOrderPO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long id;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createCompanyId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingAreaId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingLongitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingLatitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingUnit;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String freighterName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date loadingDate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadAreaId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadLongitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadLatitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String dischargerName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date unloadingData;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNameId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal weightMin;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal weightMax;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsUntisId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsUntis;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long transportationModeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String transportationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String serviceRequireId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String serviceRequire;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String remarks;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long waybillFrom;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isSource;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date sourceCloseTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String executorId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDelete;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String lineTitleLeft;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String lineTitleRight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String sysOrgCode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isCommon;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeMajor;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long auditStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long waybillMode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date latestBiddingTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal deliveryFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal collectedFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal uncollectedFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal collectLessFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String auditBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date auditTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String businessType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal transportationUnitPrice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long radioValue;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createrName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createrPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isElectricFence;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String wxaQrcode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointShipperId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createUserId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointShipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String signatureAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String qrCodeImgUrl;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shippingNote;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long receivableType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String thirdPartyOrderNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String dispatchOrderNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointDriverEnterpriseId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointDriverEnterprise;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cancelOrderRemark;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orderDriverId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal goodsQuantity;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsQuantityUnitId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsQuantityUnit;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String biddingUnit;
@ApiModelProperty("业务单状态 0-待审核 1-待执行 2-进行中 3-已完成 4-已取消 5-已拦截")
private Long orderStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long splicingOrderType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long splicingStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mainOrderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mainOrderNum;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mergeOrderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mergeOrderNum;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long payerType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String machineNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long stockFlag;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal infoFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long infoFeePayeeType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String infoFeePayee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long infoFeeStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String infoFeeDocumentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long orderShippingType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String recipientId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String recipientName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long settlementStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date settlementTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date paymentTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String reconciliationInnerNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String receivePaymentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String invoiceId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isInvoice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String vehicleTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String vehicleTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carrier;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carrierName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long szwlUserId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightUnitPrice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long biddingStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String biddingRemarks;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal cargoInsuranceAmount;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String destination;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightCharges;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String payer;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDeclare;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String route;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String containerType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String containerTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cardType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cardTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String externalContainerNo;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String transitPlace;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsShipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsShipperTel;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadingCompany;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contractNo;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal unloadingFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal customsFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal shortageFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal miscellaneousFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal otherFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal detentionFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal taxRate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String settlementCurrency;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal volume;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String detailContent;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsRoute;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsPort;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsContact;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsContactPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsRemark;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsCategory;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String makerCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customerCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date documentDate;
@ApiModelProperty( "审核状态 0-未审核 1-审核通过 2-已驳回")
private Long reviewStatus;
@ApiModelProperty("审核时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date reviewTime;
@ApiModelProperty("审核人id")
private Long reviewId;
@ApiModelProperty("审核人")
private String review;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long EXECUTE_STATUS;
@ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发")
private Long executeStatus;
@ApiModelProperty("执行时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date executeTime;
@ApiModelProperty("执行人id")
private Long executeId;
@ApiModelProperty("审核人")
private String executor;
@ApiModelProperty("预约单id")
private Long reservationOrderId ;
@ApiModelProperty("预约单号")
private String reservationOrderNumber;
}
@@ -0,0 +1,741 @@
package com.mhd.oms.domain.businessDocumentOrder.repository.todo;
import com.mhd.common.core.annotation.Excel;
import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti;
import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO;
import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.List;
/**
* 请填写功能名称对象 business_document_order
*
* @author gen
* @date 2026-01-26
*/
@Data
public class BusinessDocumentOrderDO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createCompanyId;
@ApiModelProperty(value = "创建结束日期")
@Excel(name = "创建结束日期", width = 20)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date createEndTime;
/**更新日期*/
@ApiModelProperty(value = "创建开始日期")
@Excel(name = "创建开始日期", width = 20)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date createStartTime;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingAreaId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingLongitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingLatitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingUnit;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String freighterName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String loadingPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date loadingDate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadAreaId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadLongitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadLatitude;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String dischargerName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date unloadingData;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNameId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal weightMin;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal weightMax;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsUntisId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsUntis;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long transportationModeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String transportationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String serviceRequireId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String serviceRequire;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String remarks;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long waybillFrom;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isSource;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date sourceCloseTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String executorId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDelete;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String lineTitleLeft;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String lineTitleRight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String sysOrgCode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isCommon;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsTypeMajor;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long auditStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long waybillMode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date latestBiddingTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal deliveryFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal collectedFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal uncollectedFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal collectLessFreight;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String auditBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date auditTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String businessType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal transportationUnitPrice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long radioValue;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createrName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createrPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isElectricFence;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String wxaQrcode;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointShipperId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createUserId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointShipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String signatureAddress;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String qrCodeImgUrl;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shippingNote;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long receivableType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String thirdPartyOrderNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String dispatchOrderNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointDriverEnterpriseId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String appointDriverEnterprise;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cancelOrderRemark;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orderDriverId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal goodsQuantity;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsQuantityUnitId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsQuantityUnit;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String biddingUnit;
@ApiModelProperty("业务单状态 0-待审核 1-待执行 2-进行中 3-已完成 4-已取消 5-已拦截")
private Long orderStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long splicingOrderType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long splicingStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mainOrderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mainOrderNum;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mergeOrderId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String mergeOrderNum;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long payerType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String machineNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long stockFlag;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal infoFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long infoFeePayeeType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String infoFeePayee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long infoFeeStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String infoFeeDocumentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long orderShippingType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String recipientId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String recipientName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long settlementStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date settlementTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date paymentTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String reconciliationInnerNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String receivePaymentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String invoiceId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isInvoice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String vehicleTypeId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String vehicleTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carrier;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String carrierName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long szwlUserId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightUnitPrice;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long biddingStatus;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String biddingRemarks;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal cargoInsuranceAmount;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String destination;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightCharges;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String payer;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDeclare;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String route;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String containerType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String containerTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cardType;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String cardTypeName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String externalContainerNo;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String transitPlace;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String shipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsShipper;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsShipperTel;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String unloadingCompany;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String contractNo;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal freightFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal unloadingFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal customsFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal shortageFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal miscellaneousFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal otherFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal detentionFee;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal taxRate;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String settlementCurrency;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private BigDecimal volume;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String detailContent;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsRoute;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsPort;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsContact;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsContactPhone;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customsRemark;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsCategory;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String makerCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String customerCodeNc;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String salesmanName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Date documentDate;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty( "审核状态 0-未审核 1-审核通过 2-已驳回")
private Long reviewStatus;
@ApiModelProperty("审核时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date reviewTime;
@ApiModelProperty("审核人id")
private Long reviewId;
@ApiModelProperty("审核人")
private String review;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long EXECUTE_STATUS;
@ApiModelProperty( "执行状态 0-无状态 1-未执行 2-已执行 3-已下发")
private Long executeStatus;
@ApiModelProperty("执行时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date executeTime;
@ApiModelProperty("执行人id")
private Long executeId;
@ApiModelProperty("审核人")
private String executor;
@ApiModelProperty("预约单id")
private Long reservationOrderId ;
@ApiModelProperty("预约单号")
private String reservationOrderNumber;
@ApiModelProperty("业务单地址集合")
private List<BusinessDocumentAddressMultiDTO> businessDocumentAddressMultiDTOList;
@ApiModelProperty("业务单货物集合")
private List<BusinessDocumentCargoMultiDTO> businessDocumentCargoMultiList;
@ApiModelProperty(value = "装货地址集合")
private List<BusinessDocumentAddressMultiDTO> loadingAddressList;
@ApiModelProperty(value = "卸货地址集合")
private List<BusinessDocumentAddressMultiDTO> unloadAddressList;
}
@@ -0,0 +1,701 @@
package com.mhd.oms.domain.businessDocumentOrder.service;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.aliyun.oss.ServiceException;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mhd.common.core.domain.po.UserShipperPo;
import com.mhd.common.core.utils.OrderSequence;
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.facade.IBusinessDocumentOrderService;
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
import com.mhd.oms.domain.orderType.entity.OrderType;
import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO;
import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO;
import com.mhd.oms.util.DictDataUtils;
import com.mhd.oms.util.DictTypeEnum;
import com.mhd.system.api.domain.SysDictData;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* 请填写功能名称
*
* @author gen
* @date 2026-01-26
*/
@Service
@Slf4j
public class BusinessDocumentOrderDomainService {
@Autowired
private IBusinessDocumentOrderService businessDocumentOrderService;
@Resource
private DictDataUtils dictDataUtils;
@Resource
private BusinessDocumentCargoMultiMapper businessDocumentCargoMultiMapper;
@Resource
private BusinessDocumentAddressMultiMapper businessDocumentAddressMultiMapper;
/**
* 分页查询请填写功能名称列表
*/
public List<BusinessDocumentOrderPO> queryList(BusinessDocumentOrderDO businessDocumentOrderDO) {
return businessDocumentOrderService.queryList(businessDocumentOrderDO);
}
/**
* 新增请填写功能名称
*/
public Boolean insert(BusinessDocumentOrderDO businessDocumentOrderDO) {
if (null!=businessDocumentOrderDO.getGoodsQuantity()){
businessDocumentOrderDO.setGoodsQuantity(BigDecimal.ZERO);
}
LoginUser u = SecurityUtils.getLoginUser();
//处理费用默认值
handFee(businessDocumentOrderDO);
//组织赋值
Long organizationId = businessDocumentOrderDO.getOrganizationId();
if(ObjectUtil.isNotEmpty(organizationId)){
businessDocumentOrderDO.setOrgId(String.valueOf(organizationId));
businessDocumentOrderDO.setOrgName(businessDocumentOrderDO.getOrganizationName());
}else{
businessDocumentOrderDO.setOrgId(String.valueOf(u.getUserPo().getOrganizationId()));
businessDocumentOrderDO.setOrgName(String.valueOf(u.getUserPo().getOrganizationName()));
}
businessDocumentOrderDO.setTopOrganizationId(u.getUserPo().getTopOrganizationId());
/* String swzlUserId = businessDocumentOrderDO.getAppointShipperId();
// 获取数字物流平台用户Id
String appointShipperId = businessDocumentOrderDO.getAppointShipperId();
if(StringUtils.isBlank(appointShipperId)){
appointShipperId = u.getUserid();
businessDocumentOrderDO.setAppointShipperId(appointShipperId);
}*/
UserShipperPo userShipperPo=u.getUserShipperPo();
if (userShipperPo == null) {
throw new ServiceException("您非货主角色或账号已被删除!");
}
String orderRemark = businessDocumentOrderDO.getRemarks();
businessDocumentOrderDO.setRemarks(orderRemark);
businessDocumentOrderDO.setAppointShipperId(String.valueOf(userShipperPo.getUserId()));
// 分类处理货物列表
List<BusinessDocumentCargoMultiDTO> allCargoList = businessDocumentOrderDO.getBusinessDocumentCargoMultiList();
businessDocumentOrderDO.setReceivableType(2L);
//非企业员工判断个人信息审核状态x
/* if (userShipperPo.getShipperType() != 2 && userShipperPo.getShipperFill() != 3) {
throw new ServiceException("未提交个人信息认证或认证未通过,请先认证!");
}
//企业员工判断企业货主审核状态
if (userShipperPo.getShipperType() == 2) {
if (userShipperPo.getShipperEnterpriseFill() != 3) {
throw new ServiceException("未提交个人信息认证或认证未通过,请先认证!");
}
}*/
/**
* 生成货源单信息
*/
BusinessDocumentOrder tmsOrder = new BusinessDocumentOrder();
BeanUtils.copyProperties(businessDocumentOrderDO, tmsOrder, "id");
tmsOrder.setSettlementStatus(1L);//未出账
tmsOrder.setAuditStatus(0L);//未审核
tmsOrder.setSzwlUserId(Long.valueOf(u.getUserid()));
if (tmsOrder.getLoadingDate() != null && tmsOrder.getUnloadingData() != null) {
if (tmsOrder.getUnloadingData().before(tmsOrder.getLoadingDate())) {
throw new ServiceException("装货日期不能大于卸货日期!");
}
}
//赋值信息费收款方信息
if(businessDocumentOrderDO.getOrderShippingType()==3&&businessDocumentOrderDO.getInfoFeePayeeType()!=null){
String infoFeePayee = "";
if(businessDocumentOrderDO.getInfoFeePayeeType()==0){
infoFeePayee = businessDocumentOrderDO.getAppointShipper();//委托方
}else if(businessDocumentOrderDO.getInfoFeePayeeType()==1){
infoFeePayee = businessDocumentOrderDO.getRecipientName();//收货方
}else if(businessDocumentOrderDO.getInfoFeePayeeType()==2){
infoFeePayee = businessDocumentOrderDO.getInfoFeePayee();//第三方
if(StringUtils.isBlank(businessDocumentOrderDO.getInfoFeePayee())){
throw new ServiceException("请填写信息费第三方收款方信息!");
}
}
tmsOrder.setInfoFeePayeeType(businessDocumentOrderDO.getInfoFeePayeeType());
if(infoFeePayee!=""){
tmsOrder.setInfoFeePayee(infoFeePayee);
}
}
//根据货物重量大小赋值
BigDecimal weightMin = new BigDecimal(0);
tmsOrder.setWeightMin(weightMin);
tmsOrder.setUncollectedFreight(tmsOrder.getDeliveryFreight());
//存入对应创建人
tmsOrder.setCreateBy(userShipperPo.getUserId());
if ( 2 == userShipperPo.getShipperType()) {
tmsOrder.setCreateCompanyId(String.valueOf(userShipperPo.getUserId()));
}
tmsOrder.setCreateTime(new Date());
tmsOrder.setCreaterName(u.getUsername());//保存创建人姓名
tmsOrder.setCreaterPhone(u.getUserPo().getUserPhone());//保存创建人电话
tmsOrder.setRealCreateBy(String.valueOf(u.getUserid()));
tmsOrder.setRealCreateName(u.getUsername());
tmsOrder.setAppointShipper(userShipperPo.getShipperEnterpriseName());//20250-07-29修改订单表委托方保存公司名字而不是姓名
String salesmanCodeNc = businessDocumentOrderDO.getSalesmanId();
if (salesmanCodeNc != null){
String makerCodeNc = businessDocumentOrderService.selectByMakerCodeNc(salesmanCodeNc);
String makerCodeNc1 = businessDocumentOrderService.selectByMakerCodeNc1(salesmanCodeNc);
tmsOrder.setMakerCodeNc(makerCodeNc);
tmsOrder.setSalesmanCodeNc(makerCodeNc1);
}
List<String> machineNumberList = new ArrayList<>();
List<String> goodsNameList = new ArrayList<>();
if (ObjectUtil.isNotEmpty(allCargoList)&&allCargoList.size()>0) {
BusinessDocumentCargoMultiDTO tmsCargoInfoDTO1 = allCargoList.get(0);
String goodsTypeId = tmsCargoInfoDTO1.getGoodsTypeId();
if (ObjectUtil.isNotEmpty(goodsTypeId)) {
for (BusinessDocumentCargoMultiDTO tmsCargoInfoDTO : allCargoList) {
// 处理货物名称信息
String goodsName = buildCargoNameInfo(tmsCargoInfoDTO, businessDocumentOrderDO);
if (goodsName != null) {
goodsNameList.add(goodsName);
}
// 处理机械编号信息
String machineCode = extractMachineCode(tmsCargoInfoDTO);
if (machineCode != null) {
machineNumberList.add(machineCode);
}
}
}
}
//生成货源单号
tmsOrder.setGoodsNumber(OrderSequence.getOrderCode());
List<BusinessDocumentAddressMultiDTO> loadingAddressList = businessDocumentOrderDO.getLoadingAddressList();//装货地信息集合
List<BusinessDocumentAddressMultiDTO> unloadAddressList = businessDocumentOrderDO.getUnloadAddressList();//卸货地信息集合
String loadCityCounty="",unloadCityCounty="";
//获取第一条装货地址和获取最后一条卸货地址
BusinessDocumentAddressMultiDTO firstAddress = loadingAddressList.get(0);
BusinessDocumentAddressMultiDTO lastAddress = unloadAddressList.get(unloadAddressList.size() - 1);
tmsOrder.setLoadingAreaId(firstAddress.getAreaCode());
tmsOrder.setLoadingName(firstAddress.getAreaCode());
tmsOrder.setLoadingAddress(firstAddress.getAddress());
String area = firstAddress.getAreaCode() + firstAddress.getAddress();
tmsOrder.setLineTitleLeft(firstAddress.getAreaCode());
tmsOrder.setLineTitleRight(lastAddress.getAreaCode());
tmsOrder.setFreighterName(firstAddress.getContactName());
tmsOrder.setLoadingPhone(firstAddress.getContactPhone());
tmsOrder.setLoadingDate(firstAddress.getLayDate());
tmsOrder.setUnloadAreaId(lastAddress.getAreaCode());
tmsOrder.setUnloadName(lastAddress.getAreaCode());
tmsOrder.setUnloadAddress(lastAddress.getAddress());
String unarea = lastAddress.getAreaCode() + lastAddress.getAddress();
tmsOrder.setDischargerName(lastAddress.getContactName());
tmsOrder.setUnloadPhone(lastAddress.getContactPhone());
tmsOrder.setUnloadingData(lastAddress.getLayDate());
tmsOrder.setMachineNumber(String.join(",", machineNumberList));
// 设置货物名称将所有货物信息用逗号连接
tmsOrder.setGoodsName(String.join(",", goodsNameList));
//服务要求
SysDictData sysDictItem = new SysDictData();
if (StringUtils.isNotBlank(businessDocumentOrderDO.getServiceRequireId())) {
String[] serviceRequireId = businessDocumentOrderDO.getServiceRequireId().split(",");
StringBuilder serviceRequire = new StringBuilder();
tmsOrder.setServiceRequire(findName(serviceRequireId, sysDictItem, serviceRequire));
}
//车长车型
if (StringUtils.isNotEmpty(businessDocumentOrderDO.getCarType())) {
String[] carType = businessDocumentOrderDO.getCarType().split(",");
StringBuilder carTypeName = new StringBuilder();
tmsOrder.setCarTypeName(findName(carType, sysDictItem, carTypeName));
}
if (ObjectUtil.isNotEmpty(allCargoList)&&allCargoList.size()>0) {
BusinessDocumentCargoMultiDTO tmsCargoInfoDTO1 = allCargoList.get(0);
String goodsTypeId = tmsCargoInfoDTO1.getGoodsTypeId();
if (ObjectUtil.isNotEmpty(goodsTypeId)) {
for (BusinessDocumentCargoMultiDTO tmsCargoInfoDTO : allCargoList) {
//货物重量单位id
if (StringUtils.isNotBlank(tmsCargoInfoDTO.getWeightUnitId())) {
SysDictData sysDictItem3 = dictDataUtils.getDictDataByValue(DictTypeEnum.GOODSUNIT.getTypeCode(), tmsCargoInfoDTO.getWeightUnitId());
if (sysDictItem3 != null) {
tmsOrder.setGoodsUntis(sysDictItem3.getDictLabel());
}
} else {
tmsOrder.setGoodsUntisId("1");
tmsOrder.setGoodsUntis("");
}
//货物数量单位id
if (StringUtils.isNotBlank(tmsCargoInfoDTO.getQuantityUnitId())) {
SysDictData sysDictItem33 = dictDataUtils.getDictDataByValue(DictTypeEnum.GOODSUNIT.getTypeCode(), tmsCargoInfoDTO.getQuantityUnitId());
if (sysDictItem33 != null) {
tmsCargoInfoDTO.setQuantityUnit(sysDictItem33.getDictLabel());
}
}
}
}
}
//配载方式名称
if (businessDocumentOrderDO.getTransportationModeId() != null && StringUtils.isNotEmpty(businessDocumentOrderDO.getTransportationModeId() + "")) {
if (businessDocumentOrderDO.getTransportationModeId() == 0) {
tmsOrder.setTransportationName("数量配载");
tmsOrder.setRadioValue(2L);
//wxy 23-12-15日修改数量配载时不重置需求车次为1
// tmsOrder.setDemandTrainNumber(1);
} else if (businessDocumentOrderDO.getTransportationModeId() == 1) {
tmsOrder.setTransportationName("车次配载");
tmsOrder.setRadioValue(1L);
}
}
if(businessDocumentOrderDO.getOrderShippingType()==3){
tmsOrder.setTransportationName("数量配载");
tmsOrder.setRadioValue(2L);
tmsOrder.setTransportationModeId(0L);
}else{
tmsOrder.setTransportationName("车次配载");
tmsOrder.setRadioValue(1L);
tmsOrder.setTransportationModeId(1L);
}
//货源单保存
tmsOrder.setCreateUserId(String.valueOf(u.getUserid()));
tmsOrder.setOrderStatus(0L);
//保存付款方
if(businessDocumentOrderDO.getPayerType()==0){//委托方
tmsOrder.setPayer(tmsOrder.getAppointShipper());
}else if(businessDocumentOrderDO.getPayerType()==1){//收货方
tmsOrder.setPayer(tmsOrder.getRecipientName());
}
// 设置组织信息
if (businessDocumentOrderDO.getOrganizationId() != null) {
tmsOrder.setOrganizationId(businessDocumentOrderDO.getOrganizationId());
}
if (businessDocumentOrderDO.getOrganizationName() != null) {
tmsOrder.setOrganizationName(businessDocumentOrderDO.getOrganizationName());
}
if (businessDocumentOrderDO.getTopOrganizationId() != null) {
tmsOrder.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId());
}
boolean istrue=businessDocumentOrderService.insert(businessDocumentOrderDO);
//保存货物信息及地址信息
saveAddress2CargoInfo(tmsOrder.getId(), allCargoList, loadingAddressList, unloadAddressList);
return istrue;
}
/**
* 修改请填写功能名称
*/
public Boolean update(BusinessDocumentOrderDO businessDocumentOrderDO) {
LoginUser u = SecurityUtils.getLoginUser();
UserShipperPo userShipperPo=u.getUserShipperPo();
if (userShipperPo == null) {
throw new ServiceException("您非货主角色或账号已被删除!");
}
BusinessDocumentOrder tmsOrder = businessDocumentOrderService.getById(businessDocumentOrderDO.getId());
if (tmsOrder.getOrderStatus() == 1){
tmsOrder.setOrderStatus(0L);
}
if (tmsOrder == null) {
throw new ServiceException("货源单不存在或已被删除!");
}
if (tmsOrder.getIsSource() == 1) {
throw new ServiceException("运单已被关闭,请确认!");
}
//处理费用默认值
handFee(businessDocumentOrderDO);
//组织赋值
Long organizationId = businessDocumentOrderDO.getOrganizationId();
if(ObjectUtil.isNotEmpty(organizationId)){
businessDocumentOrderDO.setOrgId(String.valueOf(organizationId));
businessDocumentOrderDO.setOrgName(businessDocumentOrderDO.getOrganizationName());
}else{
businessDocumentOrderDO.setOrgId(String.valueOf(u.getUserPo().getOrganizationId()));
businessDocumentOrderDO.setOrgName(String.valueOf(u.getUserPo().getOrganizationName()));
}
businessDocumentOrderDO.setTopOrganizationId(u.getUserPo().getTopOrganizationId());
BigDecimal deliveryFreight=tmsOrder.getDeliveryFreight();
/**
* 生成货源单信息
*/
BeanUtils.copyProperties(businessDocumentOrderDO, tmsOrder);
tmsOrder.setSzwlUserId(Long.valueOf(u.getUserid()));
if (tmsOrder.getLoadingDate() != null && tmsOrder.getUnloadingData() != null) {
if (tmsOrder.getUnloadingData().before(tmsOrder.getLoadingDate())) {
throw new ServiceException("装货日期不能大于卸货日期!");
}
}
//赋值信息费收款方信息
if(businessDocumentOrderDO.getOrderShippingType()==3&&businessDocumentOrderDO.getInfoFeePayeeType()!=null){
String infoFeePayee = "";
if(businessDocumentOrderDO.getInfoFeePayeeType()==0){
infoFeePayee = businessDocumentOrderDO.getAppointShipper();//委托方
}else if(businessDocumentOrderDO.getInfoFeePayeeType()==1){
infoFeePayee = businessDocumentOrderDO.getRecipientName();//收货方
}else if(businessDocumentOrderDO.getInfoFeePayeeType()==2){
infoFeePayee = businessDocumentOrderDO.getInfoFeePayee();//第三方
if(StringUtils.isBlank(businessDocumentOrderDO.getInfoFeePayee())){
throw new ServiceException("请填写信息费第三方收款方信息!");
}
}
tmsOrder.setInfoFeePayeeType(businessDocumentOrderDO.getInfoFeePayeeType());
if(infoFeePayee!=""){
tmsOrder.setInfoFeePayee(infoFeePayee);
}
}
//根据货物重量大小赋值
BigDecimal weightMin = new BigDecimal(0);
tmsOrder.setWeightMin(weightMin);
tmsOrder.setUncollectedFreight(tmsOrder.getDeliveryFreight());
//存入对应创建人
tmsOrder.setCreateBy(userShipperPo.getUserId());
if ( 2 == userShipperPo.getShipperType()) {
tmsOrder.setCreateCompanyId(String.valueOf(userShipperPo.getUserId()));
}
tmsOrder.setCreateTime(new Date());
tmsOrder.setCreaterName(u.getUsername());//保存创建人姓名
tmsOrder.setCreaterPhone(u.getUserPo().getUserPhone());//保存创建人电话
tmsOrder.setRealCreateBy(String.valueOf(u.getUserid()));
tmsOrder.setRealCreateName(u.getUsername());
tmsOrder.setAppointShipper(userShipperPo.getShipperEnterpriseName());//20250-07-29修改订单表委托方保存公司名字而不是姓名
String salesmanCodeNc = businessDocumentOrderDO.getSalesmanId();
if (salesmanCodeNc != null){
String makerCodeNc = businessDocumentOrderService.selectByMakerCodeNc(salesmanCodeNc);
String makerCodeNc1 = businessDocumentOrderService.selectByMakerCodeNc1(salesmanCodeNc);
tmsOrder.setMakerCodeNc(makerCodeNc);
tmsOrder.setSalesmanCodeNc(makerCodeNc1);
}
List<String> machineNumberList = new ArrayList<>();
List<String> goodsNameList = new ArrayList<>();
// 分类处理货物列表
List<BusinessDocumentCargoMultiDTO> allCargoList = businessDocumentOrderDO.getBusinessDocumentCargoMultiList();
if (ObjectUtil.isNotEmpty(allCargoList)&&allCargoList.size()>0) {
BusinessDocumentCargoMultiDTO tmsCargoInfoDTO1 = allCargoList.get(0);
String goodsTypeId = tmsCargoInfoDTO1.getGoodsTypeId();
if (ObjectUtil.isNotEmpty(goodsTypeId)) {
for (BusinessDocumentCargoMultiDTO tmsCargoInfoDTO : allCargoList) {
// 处理货物名称信息
String goodsName = buildCargoNameInfo(tmsCargoInfoDTO, businessDocumentOrderDO);
if (goodsName != null) {
goodsNameList.add(goodsName);
}
// 处理机械编号信息
String machineCode = extractMachineCode(tmsCargoInfoDTO);
if (machineCode != null) {
machineNumberList.add(machineCode);
}
}
}
}
//生成货源单号
tmsOrder.setGoodsNumber(OrderSequence.getOrderCode());
List<BusinessDocumentAddressMultiDTO> loadingAddressList = businessDocumentOrderDO.getLoadingAddressList();//装货地信息集合
List<BusinessDocumentAddressMultiDTO> unloadAddressList = businessDocumentOrderDO.getUnloadAddressList();//卸货地信息集合
String loadCityCounty="",unloadCityCounty="";
//获取第一条装货地址和获取最后一条卸货地址
BusinessDocumentAddressMultiDTO firstAddress = loadingAddressList.get(0);
BusinessDocumentAddressMultiDTO lastAddress = unloadAddressList.get(unloadAddressList.size() - 1);
tmsOrder.setLoadingAreaId(firstAddress.getAreaCode());
tmsOrder.setLoadingName(firstAddress.getAreaCode());
tmsOrder.setLoadingAddress(firstAddress.getAddress());
String area = firstAddress.getAreaCode() + firstAddress.getAddress();
tmsOrder.setLineTitleLeft(firstAddress.getAreaCode());
tmsOrder.setLineTitleRight(lastAddress.getAreaCode());
tmsOrder.setFreighterName(firstAddress.getContactName());
tmsOrder.setLoadingPhone(firstAddress.getContactPhone());
tmsOrder.setLoadingDate(firstAddress.getLayDate());
tmsOrder.setUnloadAreaId(lastAddress.getAreaCode());
tmsOrder.setUnloadName(lastAddress.getAreaCode());
tmsOrder.setUnloadAddress(lastAddress.getAddress());
String unarea = lastAddress.getAreaCode() + lastAddress.getAddress();
tmsOrder.setDischargerName(lastAddress.getContactName());
tmsOrder.setUnloadPhone(lastAddress.getContactPhone());
tmsOrder.setUnloadingData(lastAddress.getLayDate());
tmsOrder.setMachineNumber(String.join(",", machineNumberList));
// 设置货物名称将所有货物信息用逗号连接
tmsOrder.setGoodsName(String.join(",", goodsNameList));
//服务要求
SysDictData sysDictItem = new SysDictData();
if (StringUtils.isNotBlank(businessDocumentOrderDO.getServiceRequireId())) {
String[] serviceRequireId = businessDocumentOrderDO.getServiceRequireId().split(",");
StringBuilder serviceRequire = new StringBuilder();
tmsOrder.setServiceRequire(findName(serviceRequireId, sysDictItem, serviceRequire));
}
//车长车型
if (StringUtils.isNotEmpty(businessDocumentOrderDO.getCarType())) {
String[] carType = businessDocumentOrderDO.getCarType().split(",");
StringBuilder carTypeName = new StringBuilder();
tmsOrder.setCarTypeName(findName(carType, sysDictItem, carTypeName));
}
if (ObjectUtil.isNotEmpty(allCargoList)&&allCargoList.size()>0) {
BusinessDocumentCargoMultiDTO tmsCargoInfoDTO1 = allCargoList.get(0);
String goodsTypeId = tmsCargoInfoDTO1.getGoodsTypeId();
if (ObjectUtil.isNotEmpty(goodsTypeId)) {
for (BusinessDocumentCargoMultiDTO tmsCargoInfoDTO : allCargoList) {
//货物重量单位id
if (StringUtils.isNotBlank(tmsCargoInfoDTO.getWeightUnitId())) {
SysDictData sysDictItem3 = dictDataUtils.getDictDataByValue(DictTypeEnum.GOODSUNIT.getTypeCode(), tmsCargoInfoDTO.getWeightUnitId());
if (sysDictItem3 != null) {
tmsOrder.setGoodsUntis(sysDictItem3.getDictLabel());
}
} else {
tmsOrder.setGoodsUntisId("1");
tmsOrder.setGoodsUntis("");
}
//货物数量单位id
if (StringUtils.isNotBlank(tmsCargoInfoDTO.getQuantityUnitId())) {
SysDictData sysDictItem33 = dictDataUtils.getDictDataByValue(DictTypeEnum.GOODSUNIT.getTypeCode(), tmsCargoInfoDTO.getQuantityUnitId());
if (sysDictItem33 != null) {
tmsCargoInfoDTO.setQuantityUnit(sysDictItem33.getDictLabel());
}
}
}
}
}
//配载方式名称
if (businessDocumentOrderDO.getTransportationModeId() != null && StringUtils.isNotEmpty(businessDocumentOrderDO.getTransportationModeId() + "")) {
if (businessDocumentOrderDO.getTransportationModeId() == 0) {
tmsOrder.setTransportationName("数量配载");
tmsOrder.setRadioValue(2L);
//wxy 23-12-15日修改数量配载时不重置需求车次为1
// tmsOrder.setDemandTrainNumber(1);
} else if (businessDocumentOrderDO.getTransportationModeId() == 1) {
tmsOrder.setTransportationName("车次配载");
tmsOrder.setRadioValue(1L);
}
}
if(businessDocumentOrderDO.getOrderShippingType()==3){
tmsOrder.setTransportationName("数量配载");
tmsOrder.setRadioValue(2L);
tmsOrder.setTransportationModeId(0L);
}else{
tmsOrder.setTransportationName("车次配载");
tmsOrder.setRadioValue(1L);
tmsOrder.setTransportationModeId(1L);
}
//货源单保存
tmsOrder.setCreateUserId(String.valueOf(u.getUserid()));
tmsOrder.setOrderStatus(0L);
//保存付款方
if(businessDocumentOrderDO.getPayerType()==0){//委托方
tmsOrder.setPayer(tmsOrder.getAppointShipper());
}else if(businessDocumentOrderDO.getPayerType()==1){//收货方
tmsOrder.setPayer(tmsOrder.getRecipientName());
}
// 设置组织信息
if (businessDocumentOrderDO.getOrganizationId() != null) {
tmsOrder.setOrganizationId(businessDocumentOrderDO.getOrganizationId());
}
if (businessDocumentOrderDO.getOrganizationName() != null) {
tmsOrder.setOrganizationName(businessDocumentOrderDO.getOrganizationName());
}
if (businessDocumentOrderDO.getTopOrganizationId() != null) {
tmsOrder.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId());
}
boolean istrue=businessDocumentOrderService.update(businessDocumentOrderDO);
//保存货物信息及地址信息
saveAddress2CargoInfo(tmsOrder.getId(), allCargoList, loadingAddressList, unloadAddressList);
return istrue;
}
private void saveAddress2CargoInfo(Long id, List<BusinessDocumentCargoMultiDTO> cargoInfoList, List<BusinessDocumentAddressMultiDTO> loadingAddressList, List<BusinessDocumentAddressMultiDTO> unloadAddressList) {
//根据ID先删除货物装卸货信息
Snowflake snowflake = IdUtil.createSnowflake(1, 1);
if (ObjectUtil.isNotEmpty(cargoInfoList)&&cargoInfoList.size()>0) {
BusinessDocumentCargoMultiDTO tmsCargoInfoDTO1 = cargoInfoList.get(0);
String goodsTypeId = tmsCargoInfoDTO1.getGoodsTypeId();
if (ObjectUtil.isNotEmpty(goodsTypeId)) {
businessDocumentCargoMultiMapper.delete(new LambdaQueryWrapper<BusinessDocumentCargoMulti>().eq(BusinessDocumentCargoMulti::getOrderId, id));
List<BusinessDocumentCargoMulti> tmsCargoInfoList = new ArrayList<>();
for (BusinessDocumentCargoMultiDTO tmsCargoInfoDTO : cargoInfoList) {
BusinessDocumentCargoMulti tmsCargoInfo = new BusinessDocumentCargoMulti();
BeanUtils.copyProperties(tmsCargoInfoDTO, tmsCargoInfo);
tmsCargoInfo.setCreateTime(new Date());
tmsCargoInfo.setUpdateTime(new Date());
tmsCargoInfo.setOrderId(String.valueOf(id));
tmsCargoInfo.setCargoWeight(tmsCargoInfoDTO.getWeight()==null ? BigDecimal.ZERO: tmsCargoInfoDTO.getWeight());
tmsCargoInfo.setCargoNum(tmsCargoInfoDTO.getCargoNum()==null ? BigDecimal.ZERO: tmsCargoInfoDTO.getCargoNum());
businessDocumentCargoMultiMapper.insert(tmsCargoInfo);
}
}
}
businessDocumentAddressMultiMapper.delete(new LambdaQueryWrapper<BusinessDocumentAddressMulti>().eq(BusinessDocumentAddressMulti::getOrderId, id));
List<BusinessDocumentAddressMulti> addressMultiList = new ArrayList<>();
for (BusinessDocumentAddressMultiDTO addressMultiDTO : loadingAddressList) {
BusinessDocumentAddressMulti tmsAddressMulti = new BusinessDocumentAddressMulti();
BeanUtils.copyProperties(addressMultiDTO, tmsAddressMulti);
tmsAddressMulti.setCreateTime(new Date());
tmsAddressMulti.setUpdateTime(new Date());
tmsAddressMulti.setOrderId(String.valueOf(id));
tmsAddressMulti.setLayType(1L);
tmsAddressMulti.setSort(addressMultiDTO.getSort());
tmsAddressMulti.setShortName(tmsAddressMulti.getAreaName());
businessDocumentAddressMultiMapper.insert(tmsAddressMulti);
}
for (BusinessDocumentAddressMultiDTO addressMultiDTO : unloadAddressList) {
BusinessDocumentAddressMulti tmsAddressMulti = new BusinessDocumentAddressMulti();
BeanUtils.copyProperties(addressMultiDTO, tmsAddressMulti);
tmsAddressMulti.setCreateTime(new Date());
tmsAddressMulti.setUpdateTime(new Date());
tmsAddressMulti.setOrderId(String.valueOf(id));
tmsAddressMulti.setShortName(tmsAddressMulti.getAreaName());
businessDocumentAddressMultiMapper.insert(tmsAddressMulti);
}
}
/**
* 处理前端费用为null的情况
* @param businessDocumentOrderDO
*/
private void handFee(BusinessDocumentOrderDO businessDocumentOrderDO) {
businessDocumentOrderDO.setWeightMin( businessDocumentOrderDO.getWeightMin() == null ? BigDecimal.ZERO : businessDocumentOrderDO.getWeightMin());
businessDocumentOrderDO.setWeightMax( businessDocumentOrderDO.getWeightMax() == null ? BigDecimal.ZERO : businessDocumentOrderDO.getWeightMax());
businessDocumentOrderDO.setDeliveryFreight( businessDocumentOrderDO.getDeliveryFreight() == null ? BigDecimal.ZERO : businessDocumentOrderDO.getDeliveryFreight());
businessDocumentOrderDO.setTransportationUnitPrice( businessDocumentOrderDO.getTransportationUnitPrice() == null ? BigDecimal.ZERO : businessDocumentOrderDO.getTransportationUnitPrice());
//businessDocumentOrderDO.setHighestPrice( businessDocumentOrderDO.getHighestPrice() == null ? BigDecimal.ZERO : businessDocumentOrderDO.getHighestPrice());
// businessDocumentOrderDO.setMaximumBidPrice( businessDocumentOrderDO.getMaximumBidPrice() == null ? BigDecimal.ZERO : businessDocumentOrderDO.getMaximumBidPrice());
}
/**
* 构建货物名称信息
* @param tmsCargoInfoDTO 货物信息
* @param tmsOrderAddDTO 订单信息
* @return 格式化的货物名称字符串如果货物名称为空则返回null
*/
private String buildCargoNameInfo(BusinessDocumentCargoMultiDTO tmsCargoInfoDTO, BusinessDocumentOrderDO tmsOrderAddDTO) {
// 早期返回如果货物名称为空返回null
if (tmsCargoInfoDTO.getCargoName() == null || StringUtils.isEmpty(tmsCargoInfoDTO.getCargoName())) {
return null;
}
StringBuilder goodsInfo = new StringBuilder();
goodsInfo.append(tmsCargoInfoDTO.getCargoName());
// 非罐车运输使用cargoNum和cargoUnitName
if (tmsCargoInfoDTO.getCargoNum() != null) {
goodsInfo.append("*").append(tmsCargoInfoDTO.getCargoNum());
}
if (tmsCargoInfoDTO.getCargoUnitName() != null && StringUtils.isNotEmpty(tmsCargoInfoDTO.getCargoUnitName())) {
goodsInfo.append(tmsCargoInfoDTO.getCargoUnitName());
}
return goodsInfo.toString();
}
/**
* 提取机械编号信息
* @param tmsCargoInfoDTO 货物信息
* @return 机械编号字符串如果机械编号为空则返回null
*/
private String extractMachineCode(BusinessDocumentCargoMultiDTO tmsCargoInfoDTO) {
// 早期返回如果机械编号为空返回null
if (tmsCargoInfoDTO.getMachineCode() == null || StringUtils.isEmpty(tmsCargoInfoDTO.getMachineCode())) {
return null;
}
return tmsCargoInfoDTO.getMachineCode();
}
/**
* 批量删除请填写功能名称
*/
public Boolean delete(Long[] ids) {
return businessDocumentOrderService.delete(ids);
}
/**
* 获取请填写功能名称详细信息
*/
public BusinessDocumentOrderPO getInfo(Long id)
{
return businessDocumentOrderService.getInfo(id);
}
public Boolean audit( Long[] ids, Long reviewStatus)
{
return businessDocumentOrderService.audit(ids,reviewStatus);
}
public Boolean execute(Long[] ids) {
return businessDocumentOrderService.execute(ids);
}
public Boolean cancelExecute(Long[] ids) throws Exception {
return businessDocumentOrderService.cancelExecute(ids);
}
/**
* 查询编码对应名称
*
* @param serviceRequireId
* @param sysDictItem
* @param serviceRequire
* @return
*/
private String findName(String[] serviceRequireId, SysDictData sysDictItem, StringBuilder serviceRequire) {
List<SysDictData> dictDataList = dictDataUtils.getDictDataList();
Map<String, List<SysDictData>> map = dictDataList.stream().collect(Collectors.groupingBy(SysDictData::getDictType));
List<SysDictData> dictData = new ArrayList<>();
if (map != null){
if (map.get(DictTypeEnum.SERVICE_REQUIREMENT.getTypeCode()) != null){
dictData.addAll(map.get(DictTypeEnum.SERVICE_REQUIREMENT.getTypeCode()));
}
if (map.get(DictTypeEnum.VEHICLE_LENGTH.getTypeCode()) != null){
dictData.addAll(map.get(DictTypeEnum.VEHICLE_LENGTH.getTypeCode()));
}
if (map.get(DictTypeEnum.VEHICLE_TYPE.getTypeCode()) != null){
dictData.addAll(map.get(DictTypeEnum.VEHICLE_TYPE.getTypeCode()));
}
}
if(dictData != null && dictData.size()>0){
for (int i = 0; i < serviceRequireId.length; i++) {
if (serviceRequireId[i].length() > 0) {
sysDictItem = dictDataUtils.getDictData(dictData, serviceRequireId[i]);
if (sysDictItem != null){
serviceRequire.append(sysDictItem.getDictLabel());
if (i < serviceRequireId.length - 1) {
serviceRequire.append(",");
}
}
}
}
}
return serviceRequire.toString();
}
}
@@ -0,0 +1,77 @@
package com.mhd.oms.domain.deliveryInfo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 发货信息对象 oms_delivery_info
*
* @author gen
* @date 2024-05-16
*/
@Data
@TableName(value = "oms_delivery_info")
public class DeliveryInfo extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("编号")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty("最高组织id")
@Excel(name = "最高组织id")
private Long topOrganizationId;
@ApiModelProperty("组织表id")
@Excel(name = "组织表id")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("订单管理表ID")
@Excel(name = "订单管理表ID")
private Long orderId;
@ApiModelProperty("发货人")
@Excel(name = "发货人")
private String consigner;
@ApiModelProperty("发货人联系电话")
@Excel(name = "发货人联系电话")
private String consignerPhone;
@ApiModelProperty("发货人所在区域编码")
@Excel(name = "发货人所在区域编码")
private String consignerAreaCode;
@ApiModelProperty("发货人所在区域")
@Excel(name = "发货人所在区域")
private String consignerArea;
@ApiModelProperty("发货人详细地址")
@Excel(name = "发货人详细地址")
private String consignerAddress;
@ApiModelProperty("发货地址经纬度")
@Excel(name = "发货地址经纬度")
private String saddressLatLon;
@ApiModelProperty("预计发货时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date estimatedDeliveryTime;
}
@@ -0,0 +1,48 @@
package com.mhd.oms.domain.deliveryInfo.repository.facade;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mhd.oms.domain.deliveryInfo.entity.DeliveryInfo;
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
import java.util.List;
/**
* 发货信息Service接口
*
* @author gen
* @date 2024-05-16
*/
public interface IDeliveryInfoService extends IService<DeliveryInfo>
{
/**
* 分页查询发货信息列表
*/
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO);
/**
* 新增发货信息
*/
public Boolean insert(DeliveryInfoDO deliveryInfoDO);
/**
* 修改发货信息
*/
public Boolean update(DeliveryInfoDO deliveryInfoDO);
/**
* 批量删除发货信息
*/
public Boolean delete(Long[] ids);
/**
* 查询发货信息
*/
public DeliveryInfoPO getInfo(Long id);
/**
* 批量新增
*/
Boolean batchInsert(List<DeliveryInfoDO> deliveryInfoDOList);
}
@@ -0,0 +1,23 @@
package com.mhd.oms.domain.deliveryInfo.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.oms.domain.deliveryInfo.entity.DeliveryInfo;
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
import java.util.List;
/**
* 发货信息Mapper接口
*
* @author gen
* @date 2024-05-16
*/
public interface DeliveryInfoMapper extends BaseMapper<DeliveryInfo>
{
/**
* 查询发货信息列表
*/
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO);
}
@@ -0,0 +1,98 @@
package com.mhd.oms.domain.deliveryInfo.repository.persistence;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mhd.oms.domain.deliveryInfo.entity.DeliveryInfo;
import com.mhd.oms.domain.deliveryInfo.repository.facade.IDeliveryInfoService;
import com.mhd.oms.domain.deliveryInfo.repository.mapper.DeliveryInfoMapper;
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 发货信息Service业务层处理
*
* @author gen
* @date 2024-05-16
*/
@Service
public class DeliveryInfoImpl extends ServiceImpl<DeliveryInfoMapper, DeliveryInfo> implements IDeliveryInfoService {
@Autowired
private DeliveryInfoMapper deliveryInfoMapper;
/**
* 查询发货信息列表
*/
@Override
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO)
{
return deliveryInfoMapper.queryList(deliveryInfoDO);
}
/**
* 新增发货信息
*/
@Override
public Boolean insert(DeliveryInfoDO deliveryInfoDO) {
DeliveryInfo deliveryInfo = new DeliveryInfo();
BeanUtils.copyProperties(deliveryInfoDO,deliveryInfo);
return this.save(deliveryInfo);
}
/**
* 修改发货信息
*/
@Override
public Boolean update(DeliveryInfoDO deliveryInfoDO) {
DeliveryInfo deliveryInfo = new DeliveryInfo();
BeanUtils.copyProperties(deliveryInfoDO,deliveryInfo);
return this.updateById(deliveryInfo);
}
/**
* 批量删除发货信息
*/
@Override
public Boolean delete(Long[] ids ) {
List<DeliveryInfo> list = new ArrayList<>();
for (Long id : ids) {
DeliveryInfo deliveryInfo = new DeliveryInfo();
deliveryInfo.setId(id);
deliveryInfo.setDelFlag(2);
list.add(deliveryInfo);
}
return this.updateBatchById(list);
}
/**
* 修改发货信息
*/
@Override
public DeliveryInfoPO getInfo(Long id) {
DeliveryInfo deliveryInfo = this.getById(id);
DeliveryInfoPO deliveryInfoPO = new DeliveryInfoPO();
BeanUtils.copyProperties(deliveryInfo,deliveryInfoPO);
return deliveryInfoPO;
}
/**
* 批量新增
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean batchInsert(List<DeliveryInfoDO> deliveryInfoDOList) {
List<DeliveryInfo> deliveryInfoList = deliveryInfoDOList.stream().map(deliveryInfoDO -> {
DeliveryInfo deliveryInfo = new DeliveryInfo();
BeanUtils.copyProperties(deliveryInfoDO, deliveryInfo);
return deliveryInfo;
}).collect(Collectors.toList());
return this.saveBatch(deliveryInfoList);
}
}
@@ -0,0 +1,75 @@
package com.mhd.oms.domain.deliveryInfo.repository.po;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 发货信息对象 oms_delivery_info
*
* @author gen
* @date 2024-05-16
*/
@Data
@ApiModel(value = "发货信息对象", description = "发货信息响应对象")
public class DeliveryInfoPO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("编号")
private Long id;
@ApiModelProperty("最高组织id")
@Excel(name = "最高组织id")
private Long topOrganizationId;
@ApiModelProperty("组织表id")
@Excel(name = "组织表id")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("订单管理表ID")
@Excel(name = "订单管理表ID")
private Long orderId;
@ApiModelProperty("发货人")
@Excel(name = "发货人")
private String consigner;
@ApiModelProperty("发货人联系电话")
@Excel(name = "发货人联系电话")
private String consignerPhone;
@ApiModelProperty("发货人所在区域编码")
@Excel(name = "发货人所在区域编码")
private String consignerAreaCode;
@ApiModelProperty("发货人所在区域")
@Excel(name = "发货人所在区域")
private String consignerArea;
@ApiModelProperty("发货人详细地址")
@Excel(name = "发货人详细地址")
private String consignerAddress;
@ApiModelProperty("发货地址经纬度")
@Excel(name = "发货地址经纬度")
private String saddressLatLon;
@ApiModelProperty("预计发货时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date estimatedDeliveryTime;
}
@@ -0,0 +1,78 @@
package com.mhd.oms.domain.deliveryInfo.repository.todo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 发货信息对象 oms_delivery_info
*
* @author gen
* @date 2024-05-16
*/
@Data
public class DeliveryInfoDO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("编号")
private Long id;
@ApiModelProperty("最高组织id")
@Excel(name = "最高组织id")
private Long topOrganizationId;
@ApiModelProperty("组织表id")
@Excel(name = "组织表id")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("订单管理表ID")
@Excel(name = "订单管理表ID")
private Long orderId;
@ApiModelProperty("发货人")
@Excel(name = "发货人")
private String consigner;
@ApiModelProperty("发货人联系电话")
@Excel(name = "发货人联系电话")
private String consignerPhone;
@ApiModelProperty("发货人所在区域编码")
@Excel(name = "发货人所在区域编码")
private String consignerAreaCode;
@ApiModelProperty("发货人所在区域")
@Excel(name = "发货人所在区域")
private String consignerArea;
@ApiModelProperty("发货人详细地址")
@Excel(name = "发货人详细地址")
private String consignerAddress;
@ApiModelProperty("发货地址经纬度")
@Excel(name = "发货地址经纬度")
private String saddressLatLon;
@ApiModelProperty("预计发货时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date estimatedDeliveryTime;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
@@ -0,0 +1,119 @@
package com.mhd.oms.domain.deliveryInfo.service;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.deliveryInfo.repository.facade.IDeliveryInfoService;
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
import com.mhd.oms.interfaces.dto.purchaseOrder.PurchaseOrderExcelDTO;
import com.mhd.oms.interfaces.dto.salesOrder.SalesOrderExcelDTO;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* 发货信息
*
* @author gen
* @date 2024-05-16
*/
@Service
@Slf4j
public class DeliveryInfoDomainService {
@Autowired
private IDeliveryInfoService deliveryInfoService;
/**
* 分页查询发货信息列表
*/
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO) {
return deliveryInfoService.queryList(deliveryInfoDO);
}
/**
* 新增发货信息
*/
public Boolean insert(DeliveryInfoDO deliveryInfoDO) {
return deliveryInfoService.insert(deliveryInfoDO);
}
/**
* 修改发货信息
*/
public Boolean update(DeliveryInfoDO deliveryInfoDO) {
return deliveryInfoService.update(deliveryInfoDO);
}
/**
* 批量删除发货信息
*/
public Boolean delete(Long[] ids) {
return deliveryInfoService.delete(ids);
}
/**
* 获取发货信息详细信息
*/
public DeliveryInfoPO getInfo(Long id)
{
return deliveryInfoService.getInfo(id);
}
/**
* 批量新增
*/
public Boolean batchInsert(List<DeliveryInfoDO> deliveryInfoDOList) {
return deliveryInfoService.batchInsert(deliveryInfoDOList);
}
/**
* 导入销售订单 - 为传入的发货列表添加一条发货信息
*
* @param deliveryInfoDOList - 添加数据的列表
* @param salesOrderExcelDTO -导入的数据
* @param salesOrder - 导入数据中的销售订单信息
*/
public void listAddFromImportSalesOrder(List<DeliveryInfoDO> deliveryInfoDOList, SalesOrderExcelDTO salesOrderExcelDTO, SalesOrder salesOrder) {
LoginUser loginUser = SecurityUtils.getLoginUser();
DeliveryInfoDO deliveryInfoDO = new DeliveryInfoDO();
BeanUtils.copyProperties(salesOrderExcelDTO, deliveryInfoDO, IgnoreNullUtil.getNullPropertyNames(salesOrderExcelDTO));
deliveryInfoDO.setOrderId(salesOrder.getId());
deliveryInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
deliveryInfoDO.setCreateBy(loginUser.getUserPo().getUserId());
deliveryInfoDO.setCreateByName(loginUser.getUserPo().getUserName());
deliveryInfoDO.setCreateTime(new Date());
deliveryInfoDOList.add(deliveryInfoDO);
}
/**
* 导入采购订单 - 为传入的发货列表添加一条发货信息
*
* @param deliveryInfoDOList - 添加数据的列表
* @param purOrderExcelDTO -导入的数据
* @param purOrder - 导入的采购订单信息
*/
public void listAddFromImportPurOrder(List<DeliveryInfoDO> deliveryInfoDOList, PurchaseOrderExcelDTO purOrderExcelDTO, PurchaseOrder purOrder) {
LoginUser loginUser = SecurityUtils.getLoginUser();
DeliveryInfoDO deliveryInfoDO = new DeliveryInfoDO();
BeanUtils.copyProperties(purOrderExcelDTO, deliveryInfoDO, IgnoreNullUtil.getNullPropertyNames(purOrderExcelDTO));
deliveryInfoDO.setOrderId(purOrder.getId());
deliveryInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
deliveryInfoDO.setCreateBy(loginUser.getUserPo().getUserId());
deliveryInfoDO.setCreateByName(loginUser.getUserPo().getUserName());
deliveryInfoDO.setCreateTime(new Date());
deliveryInfoDOList.add(deliveryInfoDO);
}
}
@@ -0,0 +1,88 @@
package com.mhd.oms.domain.executeOrder.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.math.BigDecimal;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 请填写功能名称对象 execute_order
*
* @author gen
* @date 2026-01-27
*/
@Data
public class ExecuteOrder extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createCompanyId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long businessDocumentId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String businessDocumentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty( "下发状态 0-无状态 1-未下发 2-已下发 ")
private Long issueStatus;
@ApiModelProperty("下发时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date issueTime;
@ApiModelProperty("下发人id")
private Long issueId;
@ApiModelProperty("下发人")
private String issueName;
@ApiModelProperty("业务单状态 0-未下发 1-已下发 2-已完成 3-已取消 4-已拦截")
private Long orderStatus;
}
@@ -0,0 +1,47 @@
package com.mhd.oms.domain.executeOrder.repository.facade;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder;
import com.mhd.oms.domain.executeOrder.repository.po.ExecuteOrderPO;
import com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO;
import java.util.List;
/**
* 请填写功能名称Service接口
*
* @author gen
* @date 2026-01-27
*/
public interface IExecuteOrderService extends IService<ExecuteOrder>
{
/**
* 分页查询请填写功能名称列表
*/
public List<ExecuteOrderPO> queryList(ExecuteOrderDO executeOrderDO);
/**
* 新增请填写功能名称
*/
public Boolean insert(ExecuteOrderDO executeOrderDO);
/**
* 修改请填写功能名称
*/
public Boolean update(ExecuteOrderDO executeOrderDO);
/**
* 批量删除请填写功能名称
*/
public Boolean delete(Long[] ids);
public Boolean issueDocuments(Long[] ids);
public Boolean cancelIssueDocuments(Long[] ids);
/**
* 查询请填写功能名称
*/
public ExecuteOrderPO getInfo(Long id);
}
@@ -0,0 +1,22 @@
package com.mhd.oms.domain.executeOrder.repository.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder;
import com.mhd.oms.domain.executeOrder.repository.po.ExecuteOrderPO;
import com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO;
import org.apache.ibatis.annotations.Param;
/**
* 请填写功能名称Mapper接口
*
* @author gen
* @date 2026-01-27
*/
public interface ExecuteOrderMapper extends BaseMapper<ExecuteOrder>
{
/**
* 查询请填写功能名称列表
*/
public List<ExecuteOrderPO> queryList(ExecuteOrderDO executeOrderDO);
}
@@ -0,0 +1,210 @@
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 org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 请填写功能名称Service业务层处理
*
* @author gen
* @date 2026-01-27
*/
@Service
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;
/**
* 查询请填写功能名称列表
*/
@Override
public List<ExecuteOrderPO> queryList(ExecuteOrderDO executeOrderDO)
{
return executeOrderMapper.queryList(executeOrderDO);
}
/**
* 新增请填写功能名称
*/
@Override
public Boolean insert(ExecuteOrderDO executeOrderDO) {
ExecuteOrder executeOrder = new ExecuteOrder();
BeanUtils.copyProperties(executeOrderDO,executeOrder);
return this.save(executeOrder);
}
/**
* 修改请填写功能名称
*/
@Override
public Boolean update(ExecuteOrderDO executeOrderDO) {
ExecuteOrder executeOrder = new ExecuteOrder();
BeanUtils.copyProperties(executeOrderDO,executeOrder);
return this.updateById(executeOrder);
}
/**
* 批量删除请填写功能名称
*/
@Override
public Boolean delete(Long[] ids ) {
List<ExecuteOrder> list = new ArrayList<>();
for (Long id : ids) {
ExecuteOrder executeOrder = new ExecuteOrder();
executeOrder.setId(id);
executeOrder.setDelFlag(2);
list.add(executeOrder);
}
return this.updateBatchById(list);
}
@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;
}
@Override
@Transactional
public Boolean cancelIssueDocuments(Long[] ids) {
LoginUser loginUser = SecurityUtils.getLoginUser();//获取登录人
for (Long id:ids){
ExecuteOrder executeOrder=executeOrderMapper.selectById(id);
if (ObjectUtil.isNotNull(executeOrder)){
executeOrder.setIssueStatus(1L);
/*executeOrder.setIssueTime(new Date());
executeOrder.setIssueId(loginUser.getUserid());
executeOrder.setIssueName(loginUser.getUsername());*/
executeOrder.setOrderStatus(3L);
//取消下发到tms
AjaxResult ajaxResult=wlhyServiceFeign.cancelIssueDocuments(String.valueOf(id));
if(ajaxResult.get("code").toString().equals("200")){
executeOrderMapper.updateById(executeOrder);
}else {
throw new ServiceException(ajaxResult.get("msg").toString());
}
}
}
return null;
}
/**
* 修改请填写功能名称
*/
@Override
public ExecuteOrderPO getInfo(Long id) {
ExecuteOrder executeOrder = this.getById(id);
ExecuteOrderPO executeOrderPO = new ExecuteOrderPO();
BeanUtils.copyProperties(executeOrder,executeOrderPO);
return executeOrderPO;
}
}
@@ -0,0 +1,71 @@
package com.mhd.oms.domain.executeOrder.repository.po;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import com.mhd.common.core.web.domain.BaseVOEntity;
/**
* 请填写功能名称对象 execute_order
*
* @author gen
* @date 2026-01-27
*/
@Data
@ApiModel(value = "【请填写功能名称】对象", description = "【请填写功能名称】响应对象")
public class ExecuteOrderPO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createCompanyId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long businessDocumentId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String businessDocumentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
}
@@ -0,0 +1,74 @@
package com.mhd.oms.domain.executeOrder.repository.todo;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 请填写功能名称对象 execute_order
*
* @author gen
* @date 2026-01-27
*/
@Data
public class ExecuteOrderDO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long id;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateBy;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String realCreateName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String createCompanyId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String goodsNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String orgName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long organizationId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long businessDocumentId;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String businessDocumentNumber;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String organizationName;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long topOrganizationId;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
@@ -0,0 +1,71 @@
package com.mhd.oms.domain.executeOrder.service;
import com.mhd.oms.domain.executeOrder.repository.facade.IExecuteOrderService;
import com.mhd.oms.domain.executeOrder.repository.po.ExecuteOrderPO;
import com.mhd.oms.domain.executeOrder.repository.todo.ExecuteOrderDO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 请填写功能名称
*
* @author gen
* @date 2026-01-27
*/
@Service
@Slf4j
public class ExecuteOrderDomainService {
@Autowired
private IExecuteOrderService executeOrderService;
/**
* 分页查询请填写功能名称列表
*/
public List<ExecuteOrderPO> queryList(ExecuteOrderDO executeOrderDO) {
return executeOrderService.queryList(executeOrderDO);
}
/**
* 新增请填写功能名称
*/
public Boolean insert(ExecuteOrderDO executeOrderDO) {
return executeOrderService.insert(executeOrderDO);
}
/**
* 修改请填写功能名称
*/
public Boolean update(ExecuteOrderDO executeOrderDO) {
return executeOrderService.update(executeOrderDO);
}
/**
* 批量删除请填写功能名称
*/
public Boolean delete(Long[] ids) {
return executeOrderService.delete(ids);
}
public Boolean issueDocuments(Long[] ids) {
return executeOrderService.issueDocuments(ids);
}
public Boolean cancelIssueDocuments(Long[] ids) {
return executeOrderService.cancelIssueDocuments(ids);
}
/**
* 获取请填写功能名称详细信息
*/
public ExecuteOrderPO getInfo(Long id)
{
return executeOrderService.getInfo(id);
}
}
@@ -0,0 +1,109 @@
package com.mhd.oms.domain.goods.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 商品信息对象 oms_goods
*
* @author gen
* @date 2024-05-16
*/
@Data
@TableName("oms_goods")
public class Goods extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("编号")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty("最高组织id")
@Excel(name = "最高组织id")
private Long topOrganizationId;
@ApiModelProperty("组织表id")
@Excel(name = "组织表id")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("订单管理表ID")
@Excel(name = "订单管理表ID")
private Long orderId;
@ApiModelProperty("商品编码")
@Excel(name = "商品编码")
private String goodsNo;
@ApiModelProperty("商品名称")
@Excel(name = "商品名称")
private String goodsName;
@ApiModelProperty("包装规格")
@Excel(name = "包装规格")
private String packingSize;
@ApiModelProperty("辅助单位ID")
@Excel(name = "辅助单位ID")
private String supportUnitId;
@ApiModelProperty("辅助单位")
@Excel(name = "辅助单位")
private String supportUnit;
@ApiModelProperty("辅助单位数量")
@Excel(name = "辅助单位数量")
private Integer supportUnitQuantity;
@ApiModelProperty("物料单位EA")
@Excel(name = "物料单位EA")
private String materialUnitEa;
@ApiModelProperty("物料数量EA")
@Excel(name = "物料数量EA")
private Integer materialUnitEaQuantity;
@ApiModelProperty("单价")
@Excel(name = "单价")
private BigDecimal unitPrice;
@ApiModelProperty("含税单价")
@Excel(name = "含税单价")
private BigDecimal taxUnitPrice;
@ApiModelProperty("税率")
@Excel(name = "税率")
private BigDecimal taxRate;
@ApiModelProperty("税金")
@Excel(name = "税金")
private BigDecimal taxes;
@ApiModelProperty("金额")
@Excel(name = "金额")
private BigDecimal amount;
@ApiModelProperty("含税金额")
@Excel(name = "含税金额")
private BigDecimal taxAmount;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
}
@@ -0,0 +1,56 @@
package com.mhd.oms.domain.goods.repository.facade;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mhd.oms.domain.goods.entity.Goods;
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
import java.util.List;
/**
* 商品信息Service接口
*
* @author gen
* @date 2024-05-16
*/
public interface IGoodsService extends IService<Goods>
{
/**
* 分页查询商品信息列表
*/
public List<GoodsPO> queryList(GoodsDO goodsDO);
/**
* 新增商品信息
*/
public Boolean insert(GoodsDO goodsDO);
/**
* 修改商品信息
*/
public Boolean update(GoodsDO goodsDO);
/**
* 批量删除商品信息
*/
public Boolean delete(Long[] ids);
/**
* 查询商品信息
*/
public GoodsPO getInfo(Long id);
/**
* 根据订单ID删除物料信息
* @param orderId
* @return
*/
public Boolean deleteByOrderId(Long orderId);
/**
* 批量新增
* @param goodsDOList
*/
public Boolean batchInsert(List<GoodsDO> goodsDOList);
}
@@ -0,0 +1,23 @@
package com.mhd.oms.domain.goods.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.oms.domain.goods.entity.Goods;
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
import java.util.List;
/**
* 商品信息Mapper接口
*
* @author gen
* @date 2024-05-16
*/
public interface GoodsMapper extends BaseMapper<Goods>
{
/**
* 查询商品信息列表
*/
public List<GoodsPO> queryList(GoodsDO goodsDO);
}
@@ -0,0 +1,110 @@
package com.mhd.oms.domain.goods.repository.persistence;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mhd.oms.domain.goods.entity.Goods;
import com.mhd.oms.domain.goods.repository.facade.IGoodsService;
import com.mhd.oms.domain.goods.repository.mapper.GoodsMapper;
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 商品信息Service业务层处理
*
* @author gen
* @date 2024-05-16
*/
@Service
public class GoodsImpl extends ServiceImpl<GoodsMapper, Goods> implements IGoodsService {
@Autowired
private GoodsMapper goodsMapper;
/**
* 查询商品信息列表
*/
@Override
public List<GoodsPO> queryList(GoodsDO goodsDO)
{
return goodsMapper.queryList(goodsDO);
}
/**
* 新增商品信息
*/
@Override
public Boolean insert(GoodsDO goodsDO) {
Goods goods = new Goods();
BeanUtils.copyProperties(goodsDO,goods);
return this.save(goods);
}
/**
* 修改商品信息
*/
@Override
public Boolean update(GoodsDO goodsDO) {
Goods goods = new Goods();
BeanUtils.copyProperties(goodsDO,goods);
return this.updateById(goods);
}
/**
* 批量删除商品信息
*/
@Override
public Boolean delete(Long[] ids ) {
List<Goods> list = new ArrayList<>();
for (Long id : ids) {
Goods goods = new Goods();
goods.setId(id);
goods.setDelFlag(2);
list.add(goods);
}
return this.updateBatchById(list);
}
/**
* 修改商品信息
*/
@Override
public GoodsPO getInfo(Long id) {
Goods goods = this.getById(id);
GoodsPO goodsPO = new GoodsPO();
BeanUtils.copyProperties(goods,goodsPO);
return goodsPO;
}
/**
* 根据订单ID删除物料信息
* @param orderId
* @return
*/
@Override
public Boolean deleteByOrderId(Long orderId) {
LambdaUpdateWrapper<Goods> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(Goods::getOrderId, orderId).set(Goods::getDelFlag, 2);
return this.update(null, lambdaUpdateWrapper);
}
/**
* 批量新增
* @param goodsDOList
*/
@Override
public Boolean batchInsert(List<GoodsDO> goodsDOList) {
List<Goods> goodsList = goodsDOList.stream().map(goodsDO -> {
Goods goods = new Goods();
BeanUtils.copyProperties(goodsDO, goods);
return goods;
}).collect(Collectors.toList());
return this.saveBatch(goodsList);
}
}

Some files were not shown because too many files have changed in this diff Show More