diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/TmsOrderAddDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/TmsOrderAddDTO.java index f528bbbe3..9a6e121ba 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/TmsOrderAddDTO.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/TmsOrderAddDTO.java @@ -494,4 +494,9 @@ TmsOrderAddDTO implements Serializable { @ApiModelProperty("当前登录用户") private LoginUser loginUser; + + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java index 182e05e6d..5a0bccfcb 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java @@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.oms.domain.businessDeliveryDetailsLink.entity.BusinessDeliveryDetailsLink; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.dto.BusinessDeliveryDetailsLinkDTO; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.mapper.BusinessDeliveryDetailsLinkMapper; import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti; import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder; import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper; @@ -13,6 +16,8 @@ import com.mhd.oms.domain.businessDocumentOrder.service.BusinessDocumentOrderDom import com.mhd.common.security.utils.SecurityUtils; import com.mhd.oms.domain.businessOrderAccount.BusinessOrderAccount; import com.mhd.oms.domain.businessOrderAccount.repository.mapper.BusinessOrderAccountMapper; +import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder; +import com.mhd.oms.domain.executeOrder.repository.mapper.ExecuteOrderMapper; import com.mhd.oms.domain.gwLog.entity.GwLog; import com.mhd.oms.domain.gwLog.repository.mapper.GwLogMapper; import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessAuditDTO; @@ -66,6 +71,9 @@ public class BusinessDocumentOrderApplicationService { @Resource private GwLogMapper gwLogMapper; + @Autowired + private BusinessDeliveryDetailsLinkMapper businessDeliveryDetailsLinkMapper; + private ExecuteOrderMapper executeOrderMapper; /** * 分页查询【请填写功能名称】列表 @@ -421,4 +429,51 @@ public class BusinessDocumentOrderApplicationService { log.error("删改单申请更新状态失败失败: id={}, error={}", businessDocumentOrderDTO.getId(), e.getMessage()); } } + + public List getDeliveryDetail(Long id) { + // 查询配送明细列表 + List businessDeliveryDetailsLinks = businessDeliveryDetailsLinkMapper.selectList( + new LambdaQueryWrapper() + .eq(BusinessDeliveryDetailsLink::getOrderId, id) + .eq(BusinessDeliveryDetailsLink::getDelFlag, 1) + ); + + // 转换为DTO列表 + List businessDeliveryDetailsLinkDTOS = new ArrayList<>(); + + for (BusinessDeliveryDetailsLink businessDeliveryDetailsLink : businessDeliveryDetailsLinks) { + // 将Entity转换为DTO + BusinessDeliveryDetailsLinkDTO dto = new BusinessDeliveryDetailsLinkDTO(); + BeanUtils.copyProperties(businessDeliveryDetailsLink, dto); + + // 获取子单信息 + if (businessDeliveryDetailsLink.getSubOrderId() != null) { + BusinessDocumentOrder businessDocumentOrder = businessDocumentOrderMapper.selectById(businessDeliveryDetailsLink.getSubOrderId()); + if (businessDocumentOrder != null) { + String goodsNumber = businessDocumentOrder.getGoodsNumber(); + ExecuteOrder executeOrder = executeOrderMapper.selectOne(new LambdaQueryWrapper() + .eq(ExecuteOrder::getBusinessDocumentNumber, goodsNumber) + .eq(ExecuteOrder::getDelFlag, 1) + ); + if (executeOrder != null) { + String goodsNumber1 = executeOrder.getGoodsNumber(); + + // 获取TMS订单ID + String tmsOrderId = businessDocumentOrderMapper.getTmsOrderInfo(goodsNumber1); + if (tmsOrderId != null) { + // 获取运单详情 + com.mhd.system.api.domain.TmsTransportNote tmsTransportNote = businessDocumentOrderMapper.getTmsTransportNote(tmsOrderId); + if (tmsTransportNote != null) { + dto.setTmsTransportNote(tmsTransportNote); + } + } + } + } + } + + businessDeliveryDetailsLinkDTOS.add(dto); + } + + return businessDeliveryDetailsLinkDTOS; + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/entity/BusinessDeliveryDetailsLink.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/entity/BusinessDeliveryDetailsLink.java new file mode 100644 index 000000000..aa4930124 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/entity/BusinessDeliveryDetailsLink.java @@ -0,0 +1,65 @@ +package com.mhd.oms.domain.businessDeliveryDetailsLink.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.mhd.common.core.web.domain.BaseEntity; +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author: brb + * @description: + * @create: 2026-05-26 10:50 + */ +@Data +@TableName("business_delivery_details_link") +public class BusinessDeliveryDetailsLink extends BaseVOEntity { + @ApiModelProperty(value = "主键") + private Long id; + + @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 = "更新时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + @ApiModelProperty(value = "业务单id") + private Long orderId; + + @ApiModelProperty(value = "类别") + private String category; + + @ApiModelProperty(value = "发票编号") + private String invoiceNumber; + + @ApiModelProperty(value = "客户编号") + private String customerNumber; + + @ApiModelProperty(value = "配送名称") + private String deliveryName; + + @ApiModelProperty(value = "箱") + private Integer box; + + @ApiModelProperty(value = "包") + private Integer bag; + + @ApiModelProperty(value = "金额") + private BigDecimal amount; + + @ApiModelProperty(value = "子单id") + private String subOrderId; + + @ApiModelProperty(value = "删除标志") + private Integer delFlag; + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/dto/BusinessDeliveryDetailsLinkDTO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/dto/BusinessDeliveryDetailsLinkDTO.java new file mode 100644 index 000000000..041cadbb2 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/dto/BusinessDeliveryDetailsLinkDTO.java @@ -0,0 +1,72 @@ +package com.mhd.oms.domain.businessDeliveryDetailsLink.repository.dto; + +import com.mhd.common.core.annotation.Excel; +import com.mhd.common.core.web.domain.BaseVOEntity; +import com.mhd.system.api.domain.TmsTransportNote; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 业务配送明细关联DTO对象 + * + * @author gen + * @date 2026-05-26 + */ +@Data +public class BusinessDeliveryDetailsLinkDTO extends BaseVOEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("创建时间") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty("更新时间") + @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + @ApiModelProperty("业务单id") + @Excel(name = "业务单id") + private Long orderId; + + @ApiModelProperty("类别") + @Excel(name = "类别") + private String category; + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; + + @ApiModelProperty("客户编号") + @Excel(name = "客户编号") + private String customerNumber; + + @ApiModelProperty("配送名称") + @Excel(name = "配送名称") + private String deliveryName; + + @ApiModelProperty("箱") + @Excel(name = "箱") + private Integer box; + + @ApiModelProperty("包") + @Excel(name = "包") + private Integer bag; + + @ApiModelProperty("金额") + @Excel(name = "金额") + private BigDecimal amount; + + @ApiModelProperty(value = "子单id") + private Long subOrderId; + + @ApiModelProperty("删除标志") + private Integer delFlag; + @ApiModelProperty("运输单信息") + private TmsTransportNote tmsTransportNote; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/facade/IBusinessDeliveryDetailsLinkService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/facade/IBusinessDeliveryDetailsLinkService.java new file mode 100644 index 000000000..a4c93182a --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/facade/IBusinessDeliveryDetailsLinkService.java @@ -0,0 +1,62 @@ +package com.mhd.oms.domain.businessDeliveryDetailsLink.repository.facade; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.mhd.oms.domain.businessDeliveryDetailsLink.entity.BusinessDeliveryDetailsLink; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.po.BusinessDeliveryDetailsLinkPO; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.todo.BusinessDeliveryDetailsLinkDO; + +import java.util.List; + +/** + * 业务配送明细关联Service接口 + * + * @author gen + * @date 2026-05-26 + */ +public interface IBusinessDeliveryDetailsLinkService extends IService { + + /** + * 分页查询业务配送明细关联列表 + */ + List queryList(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO); + + /** + * 新增业务配送明细关联 + */ + Boolean insert(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO); + + /** + * 新增业务配送明细关联并返回实体 + */ + BusinessDeliveryDetailsLink insertReturnEntity(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO); + + /** + * 新增业务配送明细关联并返回主键ID + */ + Long insertReturnId(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO); + + /** + * 修改业务配送明细关联 + */ + Boolean update(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO); + + /** + * 批量删除业务配送明细关联 + */ + Boolean delete(Long[] ids); + + /** + * 查询业务配送明细关联详细信息 + */ + BusinessDeliveryDetailsLinkPO getInfo(Long id); + + /** + * 批量查询业务配送明细关联 + */ + List getInfo(List ids); + + /** + * 批量修改业务配送明细关联 + */ + Boolean batchUpdate(List businessDeliveryDetailsLinkDOS); +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/mapper/BusinessDeliveryDetailsLinkMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/mapper/BusinessDeliveryDetailsLinkMapper.java new file mode 100644 index 000000000..80d3e1341 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/mapper/BusinessDeliveryDetailsLinkMapper.java @@ -0,0 +1,22 @@ +package com.mhd.oms.domain.businessDeliveryDetailsLink.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.oms.domain.businessDeliveryDetailsLink.entity.BusinessDeliveryDetailsLink; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.po.BusinessDeliveryDetailsLinkPO; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.todo.BusinessDeliveryDetailsLinkDO; + +import java.util.List; + +/** + * 业务配送明细关联Mapper接口 + * + * @author gen + * @date 2026-05-26 + */ +public interface BusinessDeliveryDetailsLinkMapper extends BaseMapper { + + /** + * 查询业务配送明细关联列表 + */ + List queryList(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO); +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/persistence/BusinessDeliveryDetailsLinkImpl.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/persistence/BusinessDeliveryDetailsLinkImpl.java new file mode 100644 index 000000000..efc1e4efa --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/persistence/BusinessDeliveryDetailsLinkImpl.java @@ -0,0 +1,143 @@ +package com.mhd.oms.domain.businessDeliveryDetailsLink.repository.persistence; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mhd.common.core.exception.ServiceException; +import com.mhd.oms.domain.businessDeliveryDetailsLink.entity.BusinessDeliveryDetailsLink; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.facade.IBusinessDeliveryDetailsLinkService; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.mapper.BusinessDeliveryDetailsLinkMapper; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.po.BusinessDeliveryDetailsLinkPO; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.todo.BusinessDeliveryDetailsLinkDO; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * 业务配送明细关联Service业务层处理 + * + * @author gen + * @date 2026-05-26 + */ +@Service +public class BusinessDeliveryDetailsLinkImpl extends ServiceImpl implements IBusinessDeliveryDetailsLinkService { + + @Autowired + private BusinessDeliveryDetailsLinkMapper businessDeliveryDetailsLinkMapper; + + /** + * 查询业务配送明细关联列表 + */ + @Override + public List queryList(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + return businessDeliveryDetailsLinkMapper.queryList(businessDeliveryDetailsLinkDO); + } + + /** + * 新增业务配送明细关联 + */ + @Override + public Boolean insert(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = new BusinessDeliveryDetailsLink(); + BeanUtils.copyProperties(businessDeliveryDetailsLinkDO, businessDeliveryDetailsLink); + return this.save(businessDeliveryDetailsLink); + } + + /** + * 新增业务配送明细关联并返回实体 + */ + @Override + public BusinessDeliveryDetailsLink insertReturnEntity(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = new BusinessDeliveryDetailsLink(); + BeanUtils.copyProperties(businessDeliveryDetailsLinkDO, businessDeliveryDetailsLink); + this.save(businessDeliveryDetailsLink); + return businessDeliveryDetailsLink; + } + + /** + * 新增业务配送明细关联并返回主键ID + */ + @Override + public Long insertReturnId(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = new BusinessDeliveryDetailsLink(); + BeanUtils.copyProperties(businessDeliveryDetailsLinkDO, businessDeliveryDetailsLink); + this.save(businessDeliveryDetailsLink); + return businessDeliveryDetailsLink.getId(); + } + + /** + * 修改业务配送明细关联 + */ + @Override + public Boolean update(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = new BusinessDeliveryDetailsLink(); + BeanUtils.copyProperties(businessDeliveryDetailsLinkDO, businessDeliveryDetailsLink); + return this.updateById(businessDeliveryDetailsLink); + } + + /** + * 批量删除业务配送明细关联 + */ + @Override + public Boolean delete(Long[] ids) { + if (ArrayUtil.isEmpty(ids)) { + throw new ServiceException("删除ID不能为空"); + } + List list = new ArrayList<>(); + for (Long id : ids) { + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = new BusinessDeliveryDetailsLink(); + businessDeliveryDetailsLink.setId(id); + businessDeliveryDetailsLink.setDelFlag(2); + list.add(businessDeliveryDetailsLink); + } + return this.updateBatchById(list); + } + + /** + * 查询业务配送明细关联详细信息 + */ + @Override + public BusinessDeliveryDetailsLinkPO getInfo(Long id) { + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = this.getById(id); + if (ObjectUtil.isNull(businessDeliveryDetailsLink)) { + throw new ServiceException("未查询到对应的业务配送明细关联信息"); + } + BusinessDeliveryDetailsLinkPO businessDeliveryDetailsLinkPO = new BusinessDeliveryDetailsLinkPO(); + BeanUtils.copyProperties(businessDeliveryDetailsLink, businessDeliveryDetailsLinkPO); + return businessDeliveryDetailsLinkPO; + } + + /** + * 批量查询业务配送明细关联 + */ + @Override + public List getInfo(List ids) { + List list = this.listByIds(ids); + List poList = new ArrayList<>(); + for (BusinessDeliveryDetailsLink businessDeliveryDetailsLink : list) { + BusinessDeliveryDetailsLinkPO businessDeliveryDetailsLinkPO = new BusinessDeliveryDetailsLinkPO(); + BeanUtils.copyProperties(businessDeliveryDetailsLink, businessDeliveryDetailsLinkPO); + poList.add(businessDeliveryDetailsLinkPO); + } + return poList; + } + + /** + * 批量修改业务配送明细关联 + */ + @Override + public Boolean batchUpdate(List businessDeliveryDetailsLinkDOS) { + List list = new ArrayList<>(); + for (BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO : businessDeliveryDetailsLinkDOS) { + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = new BusinessDeliveryDetailsLink(); + BeanUtils.copyProperties(businessDeliveryDetailsLinkDO, businessDeliveryDetailsLink); + list.add(businessDeliveryDetailsLink); + } + return this.updateBatchById(list); + } +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/po/BusinessDeliveryDetailsLinkPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/po/BusinessDeliveryDetailsLinkPO.java new file mode 100644 index 000000000..8f28877e8 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/po/BusinessDeliveryDetailsLinkPO.java @@ -0,0 +1,71 @@ +package com.mhd.oms.domain.businessDeliveryDetailsLink.repository.po; + +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 java.math.BigDecimal; +import java.util.Date; + +/** + * 业务配送明细关联PO对象(响应输出) + * + * @author gen + * @date 2026-05-26 + */ +@Data +@ApiModel(value = "业务配送明细关联对象", description = "业务配送明细关联响应对象") +public class BusinessDeliveryDetailsLinkPO extends BaseVOEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("创建时间") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty("更新时间") + @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + @ApiModelProperty("业务单id") + @Excel(name = "业务单id") + private Long orderId; + + @ApiModelProperty("类别") + @Excel(name = "类别") + private String category; + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; + + @ApiModelProperty("客户编号") + @Excel(name = "客户编号") + private String customerNumber; + + @ApiModelProperty("配送名称") + @Excel(name = "配送名称") + private String deliveryName; + + @ApiModelProperty("箱") + @Excel(name = "箱") + private Integer box; + + @ApiModelProperty("包") + @Excel(name = "包") + private Integer bag; + + @ApiModelProperty("金额") + @Excel(name = "金额") + private BigDecimal amount; + + @ApiModelProperty(value = "子单id") + private String subOrderId; + + @ApiModelProperty("删除标志") + private Integer delFlag; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/todo/BusinessDeliveryDetailsLinkDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/todo/BusinessDeliveryDetailsLinkDO.java new file mode 100644 index 000000000..211a51553 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/repository/todo/BusinessDeliveryDetailsLinkDO.java @@ -0,0 +1,76 @@ +package com.mhd.oms.domain.businessDeliveryDetailsLink.repository.todo; + +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; +import java.util.Date; +import java.util.List; + +/** + * 业务配送明细关联DO对象(查询条件输入) + * + * @author gen + * @date 2026-05-26 + */ +@Data +public class BusinessDeliveryDetailsLinkDO extends BaseVOEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("主键集合") + private List idList; + + @ApiModelProperty("创建时间") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty("更新时间") + @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + @ApiModelProperty("业务单id") + @Excel(name = "业务单id") + private Long orderId; + + @ApiModelProperty("业务单id集合") + private List orderIdList; + + @ApiModelProperty("类别") + @Excel(name = "类别") + private String category; + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; + + @ApiModelProperty("客户编号") + @Excel(name = "客户编号") + private String customerNumber; + + @ApiModelProperty("配送名称") + @Excel(name = "配送名称") + private String deliveryName; + + @ApiModelProperty("箱") + @Excel(name = "箱") + private Integer box; + + @ApiModelProperty("包") + @Excel(name = "包") + private Integer bag; + + @ApiModelProperty("金额") + @Excel(name = "金额") + private BigDecimal amount; + + @ApiModelProperty(value = "子单id") + private String subOrderId; + + @ApiModelProperty("删除标志") + private Integer delFlag; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/service/BusinessDeliveryDetailsLinkDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/service/BusinessDeliveryDetailsLinkDomainService.java new file mode 100644 index 000000000..8d40cfaf7 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDeliveryDetailsLink/service/BusinessDeliveryDetailsLinkDomainService.java @@ -0,0 +1,80 @@ +package com.mhd.oms.domain.businessDeliveryDetailsLink.service; + +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.facade.IBusinessDeliveryDetailsLinkService; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.po.BusinessDeliveryDetailsLinkPO; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.todo.BusinessDeliveryDetailsLinkDO; +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-05-26 + */ +@Service +@Slf4j +public class BusinessDeliveryDetailsLinkDomainService { + + @Autowired + private IBusinessDeliveryDetailsLinkService businessDeliveryDetailsLinkService; + + /** + * 分页查询业务配送明细关联列表 + */ + public List queryList(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + return businessDeliveryDetailsLinkService.queryList(businessDeliveryDetailsLinkDO); + } + + /** + * 新增业务配送明细关联 + */ + public Boolean insert(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + return businessDeliveryDetailsLinkService.insert(businessDeliveryDetailsLinkDO); + } + + /** + * 新增业务配送明细关联并且返回主键ID + */ + public Long insertReturnId(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + return businessDeliveryDetailsLinkService.insertReturnId(businessDeliveryDetailsLinkDO); + } + + /** + * 修改业务配送明细关联 + */ + public Boolean update(BusinessDeliveryDetailsLinkDO businessDeliveryDetailsLinkDO) { + return businessDeliveryDetailsLinkService.update(businessDeliveryDetailsLinkDO); + } + + /** + * 批量删除业务配送明细关联 + */ + public Boolean delete(Long[] ids) { + return businessDeliveryDetailsLinkService.delete(ids); + } + + /** + * 获取业务配送明细关联详细信息 + */ + public BusinessDeliveryDetailsLinkPO getInfo(Long id) { + return businessDeliveryDetailsLinkService.getInfo(id); + } + + /** + * 批量获取业务配送明细关联详细信息 + */ + public List getInfo(List ids) { + return businessDeliveryDetailsLinkService.getInfo(ids); + } + + /** + * 批量修改业务配送明细关联 + */ + public Boolean batchUpdate(List businessDeliveryDetailsLinkDOS) { + return businessDeliveryDetailsLinkService.batchUpdate(businessDeliveryDetailsLinkDOS); + } +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java index c5d38f1dc..d1a90eac0 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java @@ -793,4 +793,15 @@ public class BusinessDocumentOrder extends BaseVOEntity{ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("删改单申请时间") private Date reviseApplyTime; + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; + + @ApiModelProperty("客户编号") + @Excel(name = "客户编号") + private String customerNumber; + + @ApiModelProperty("配送进度") + private String deliveryProgress; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/mapper/BusinessDocumentOrderMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/mapper/BusinessDocumentOrderMapper.java index 3d0b8c67c..2f73bbaba 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/mapper/BusinessDocumentOrderMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/mapper/BusinessDocumentOrderMapper.java @@ -2,9 +2,12 @@ package com.mhd.oms.domain.businessDocumentOrder.repository.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.common.core.domain.po.UserPo; 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 com.mhd.system.api.domain.TmsTransportNote; +import org.apache.catalina.User; import org.apache.ibatis.annotations.Param; /** * 【请填写功能名称】Mapper接口 @@ -24,4 +27,10 @@ public interface BusinessDocumentOrderMapper extends BaseMapper queryListAndMaterial(BusinessDocumentOrderDO businessDocumentOrderDO); + + UserPo getAddressByUserAccount(@Param("customerNumber") String customerNumber); + + String getTmsOrderInfo(@Param("goodsNumber") String goodsNumber); + + TmsTransportNote getTmsTransportNote(@Param("tmsOrderId") String tmsOrderId); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/persistence/BusinessDocumentOrderImpl.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/persistence/BusinessDocumentOrderImpl.java index e45c25531..174899e17 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/persistence/BusinessDocumentOrderImpl.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/persistence/BusinessDocumentOrderImpl.java @@ -4,7 +4,12 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mhd.common.core.domain.po.UserPo; +import com.mhd.common.core.utils.OrderSequence; import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.businessDeliveryDetailsLink.entity.BusinessDeliveryDetailsLink; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.dto.BusinessDeliveryDetailsLinkDTO; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.mapper.BusinessDeliveryDetailsLinkMapper; 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; @@ -30,8 +35,10 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.mapper.ReservationS import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrder; import com.mhd.oms.domain.reservationStockOutOrder.repository.mapper.ReservationStockOutOrderMapper; import com.mhd.system.api.WlhyServiceFeign; +import com.mhd.system.api.domain.SysUser; import com.mhd.system.api.domain.TmsOrderAddDTO; import com.mhd.system.api.model.LoginUser; +import org.apache.catalina.User; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -72,6 +79,9 @@ public class BusinessDocumentOrderImpl extends ServiceImpl allExecuteOrderList = new ArrayList<>(); + + List businessDocumentOrderList = businessDocumentOrderMapper.selectList(new LambdaQueryWrapper().eq(BusinessDocumentOrder::getMainOrderId, id).eq(BusinessDocumentOrder::getDelFlag,1)); + if (businessDocumentOrderList.size()>0){ + for (BusinessDocumentOrder businessDocumentOrder1 : businessDocumentOrderList){ + ExecuteOrder executeOrder= executeOrderMapper.selectOne(new LambdaQueryWrapper().eq(ExecuteOrder::getGoodsNumber, businessDocumentOrder1.getExecuteOrderNumber()).eq(ExecuteOrder::getDelFlag, 1)); + if (ObjectUtil.isNotNull(executeOrder)) { + allExecuteOrderList.add(executeOrder); + } + } + } + if (!allExecuteOrderList.isEmpty()) { + businessDocumentOrderPO.setExecuteOrderList(allExecuteOrderList); + } + } //获取货物信息 List businessDocumentCargoMultiList = businessDocumentCargoMultiMapper.selectList(new LambdaQueryWrapper().eq(BusinessDocumentCargoMulti::getOrderId, id).eq(BusinessDocumentCargoMulti::getDelFlag,1)); if (businessDocumentCargoMultiList.size()>0){ @@ -159,6 +185,98 @@ public class BusinessDocumentOrderImpl extends ServiceImpl businessDeliveryDetailsLinkDTOList = businessDocumentOrderDO.getBusinessDeliveryDetailsLinkDTOList(); + List businessDeliveryDetailsLinkDTOList = businessDeliveryDetailsLinkMapper.selectList(new LambdaQueryWrapper().eq(BusinessDeliveryDetailsLink::getOrderId, id).eq(BusinessDeliveryDetailsLink::getDelFlag, 1)); + + boolean hasDetails = businessDeliveryDetailsLinkDTOList != null && businessDeliveryDetailsLinkDTOList.size() > 0; + + // 如果有明细,为每个明细生成一个子单 + if (hasDetails) { + int subOrderCount = 0; // 子单计数 + for (BusinessDeliveryDetailsLink businessDeliveryDetailsLinkDTO : businessDeliveryDetailsLinkDTOList) { + BusinessDocumentOrder subOrder = new BusinessDocumentOrder(); + BeanUtils.copyProperties(businessDocumentOrder, subOrder); + + subOrder.setId(null); + subOrder.setGoodsNumber(OrderSequence.getOrderCode()); // 生成新的子单号 + + // 设置子单的拼单类型和主单关系 + subOrder.setSplicingOrderType(3L); // 合单-子单 + subOrder.setMainOrderId(String.valueOf(businessDocumentOrder.getId())); // 主单ID + subOrder.setMainOrderNum(businessDocumentOrder.getGoodsNumber()); // 主单号 + + if (businessDocumentOrder.getOrganizationId() != null) { + subOrder.setOrganizationId(businessDocumentOrder.getOrganizationId()); + } + if (businessDocumentOrder.getOrganizationName() != null) { + subOrder.setOrganizationName(businessDocumentOrder.getOrganizationName()); + } + if (businessDocumentOrder.getTopOrganizationId() != null) { + subOrder.setTopOrganizationId(businessDocumentOrder.getTopOrganizationId()); + } + //卸货地与卸货详情 + String customerNumber = businessDeliveryDetailsLinkDTO.getCustomerNumber(); + UserPo user = businessDocumentOrderMapper.getAddressByUserAccount(customerNumber); + String userAreaName = user.getUserAreaName(); + String userAreaAddress = user.getUserAreaAddress(); + subOrder.setUnloadAddress(userAreaAddress); + subOrder.setUnloadName(userAreaName); + subOrder.setDischargerName(user.getUserName()); + subOrder.setUnloadPhone(user.getUserPhone()); + subOrder.setInvoiceNumber(businessDeliveryDetailsLinkDTO.getInvoiceNumber()); + subOrder.setCustomerNumber(businessDeliveryDetailsLinkDTO.getCustomerNumber()); + + + businessDocumentOrderMapper.insert(subOrder); + subOrderCount++; // 增加子单计数 + + // 保存子单的地址信息到BUSINESS_DOCUMENT_ADDRESS_MULTI表 + List loadingAddressList = businessDocumentAddressMultiMapper.selectList( + new LambdaQueryWrapper() + .eq(BusinessDocumentAddressMulti::getOrderId, String.valueOf(businessDocumentOrder.getId())) + .eq(BusinessDocumentAddressMulti::getLayType, 1L) + .eq(BusinessDocumentAddressMulti::getDelFlag, 1) + ); + if (loadingAddressList != null && !loadingAddressList.isEmpty()) { + for (BusinessDocumentAddressMulti loadingAddress : loadingAddressList) { + BusinessDocumentAddressMulti subLoadingAddress = new BusinessDocumentAddressMulti(); + BeanUtils.copyProperties(loadingAddress, subLoadingAddress, "id"); + subLoadingAddress.setOrderId(String.valueOf(subOrder.getId())); + subLoadingAddress.setCreateTime(new Date()); + subLoadingAddress.setUpdateTime(new Date()); + businessDocumentAddressMultiMapper.insert(subLoadingAddress); + } + } + + BusinessDocumentAddressMulti unloadAddress = new BusinessDocumentAddressMulti(); + unloadAddress.setOrganizationId(subOrder.getOrganizationId()); + unloadAddress.setOrganizationName(subOrder.getOrganizationName()); + unloadAddress.setTopOrganizationId(subOrder.getTopOrganizationId()); + unloadAddress.setOrderId(String.valueOf(subOrder.getId())); + unloadAddress.setAreaCode(userAreaAddress); + unloadAddress.setAreaName(userAreaName); + unloadAddress.setAddress(userAreaAddress); + unloadAddress.setContactName(user.getUserName()); + unloadAddress.setContactPhone(user.getUserPhone()); + unloadAddress.setLayType(2L); + unloadAddress.setSort(1L); + unloadAddress.setShortName(userAreaName); + unloadAddress.setCreateTime(new Date()); + unloadAddress.setUpdateTime(new Date()); + unloadAddress.setDelFlag(1); + businessDocumentAddressMultiMapper.insert(unloadAddress); + + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = new BusinessDeliveryDetailsLink(); + BeanUtils.copyProperties(businessDeliveryDetailsLinkDTO, businessDeliveryDetailsLink); + businessDeliveryDetailsLink.setOrderId(businessDocumentOrder.getId()); + businessDeliveryDetailsLink.setSubOrderId(String.valueOf(subOrder.getId())); + businessDeliveryDetailsLinkMapper.updateById(businessDeliveryDetailsLink); + + } + //配送进度:0/子单数量 + businessDocumentOrder.setDeliveryProgress("0/" + subOrderCount); + } }else{ businessDocumentOrder.setOrderStatus(0L); } @@ -186,36 +304,108 @@ public class BusinessDocumentOrderImpl extends ServiceImpl subOrders = businessDocumentOrderMapper.selectList( + new LambdaQueryWrapper() + .eq(BusinessDocumentOrder::getMainOrderId, String.valueOf(id)) + .eq(BusinessDocumentOrder::getDelFlag, 1) + ); + + if (subOrders != null && !subOrders.isEmpty()) { + // 执行所有子单 + for (BusinessDocumentOrder subOrder : subOrders) { + // 检查子单是否已生成执行单 + ExecuteOrder subExecuteOrder = executeOrderMapper.selectOne( + new LambdaQueryWrapper() + .eq(ExecuteOrder::getBusinessDocumentId, subOrder.getId()) + .eq(ExecuteOrder::getDelFlag, 1) + .last("LIMIT 1") + ); + + if (ObjectUtil.isNotNull(subExecuteOrder)) { + continue; // 子单已执行,跳过 + } + + // 创建子单的执行单 + ExecuteOrderDO subExecuteOrderDO = new ExecuteOrderDO(); + BeanUtils.copyProperties(subOrder, subExecuteOrderDO); + subExecuteOrderDO.setDocumentDate(subOrder.getDocumentDate()); + subExecuteOrderDO.setLayDate(subOrder.getLayDate()); + subExecuteOrderDO.setBusinessDocumentId(subOrder.getId()); + subExecuteOrderDO.setBusinessDocumentNumber(subOrder.getGoodsNumber()); + subExecuteOrderDO.setGoodsNumber(subOrder.getGoodsNumber()); + subExecuteOrderDO.setCreateBy(loginUser.getUserid()); + subExecuteOrderDO.setCreateTime(new Date()); + subExecuteOrderDO.setCreateByName(loginUser.getWlhyLoginUser().getRealname()); + subExecuteOrderDO.setUpdateByName(loginUser.getWlhyLoginUser().getRealname()); + subExecuteOrderDO.setDelFlag(1); + subExecuteOrderDO.setOrganizationId(subOrder.getOrganizationId()); + subExecuteOrderDO.setOrgName(subOrder.getOrgName()); + subExecuteOrderDO.setTopOrganizationId(subOrder.getTopOrganizationId()); + subExecuteOrderDO.setReservationOrderNumber(subOrder.getReservationOrderNumber()); + subExecuteOrderDO.setRoute(subOrder.getRoute()); + subExecuteOrderDO.setInvoiceNumber(subOrder.getInvoiceNumber()); + + Long subExecuteOrderId = executeOrderDomainService.insert(subExecuteOrderDO); + + // 更新子单状态 + subOrder.setExecuteId(loginUser.getUserid()); + subOrder.setExecuteStatus(2L); + subOrder.setExecuteTime(new Date()); + subOrder.setExecutor(loginUser.getUsername()); + subOrder.setOrderStatus(2L); + subOrder.setExecuteOrderId(String.valueOf(subExecuteOrderId)); + subOrder.setExecuteOrderNumber(subOrder.getGoodsNumber()); + businessDocumentOrderMapper.updateById(subOrder); + } + + // 更新主单状态 + businessDocumentOrder.setExecuteId(loginUser.getUserid()); + businessDocumentOrder.setExecuteStatus(2L); + businessDocumentOrder.setExecuteTime(new Date()); + businessDocumentOrder.setExecutor(loginUser.getUsername()); + businessDocumentOrder.setOrderStatus(2L); + businessDocumentOrderMapper.updateById(businessDocumentOrder); + } else { + throw new ServerException("拆单主单未找到子单,无法执行"); + } + } else { + // 不为4时,保留原来逻辑 + // 先创建执行单 + ExecuteOrderDO executeOrderDO=new ExecuteOrderDO(); + BeanUtils.copyProperties(businessDocumentOrder,executeOrderDO); + executeOrderDO.setDocumentDate(businessDocumentOrder.getDocumentDate()); + executeOrderDO.setLayDate(businessDocumentOrder.getLayDate()); + executeOrderDO.setBusinessDocumentId(id); + executeOrderDO.setBusinessDocumentNumber(businessDocumentOrder.getGoodsNumber()); + executeOrderDO.setGoodsNumber(businessDocumentOrder.getGoodsNumber()); + executeOrderDO.setCreateBy(loginUser.getUserid()); + executeOrderDO.setCreateTime(new Date()); + executeOrderDO.setCreateByName(loginUser.getWlhyLoginUser().getRealname()); + executeOrderDO.setUpdateByName(loginUser.getWlhyLoginUser().getRealname()); + executeOrderDO.setDelFlag(1); + executeOrderDO.setOrganizationId(businessDocumentOrder.getOrganizationId()); + executeOrderDO.setOrgName(businessDocumentOrder.getOrgName()); + executeOrderDO.setTopOrganizationId(businessDocumentOrder.getTopOrganizationId()); + executeOrderDO.setReservationOrderNumber(businessDocumentOrder.getReservationOrderNumber()); + executeOrderDO.setRoute(businessDocumentOrder.getRoute()); + executeOrderDO.setInvoiceNumber(businessDocumentOrder.getInvoiceNumber()); + + Long executeOrderId = executeOrderDomainService.insert(executeOrderDO); + + // 更新业务单状态和执行单信息 + businessDocumentOrder.setExecuteId(loginUser.getUserid()); + businessDocumentOrder.setExecuteStatus(2L); + businessDocumentOrder.setExecuteTime(new Date()); + businessDocumentOrder.setExecutor(loginUser.getUsername()); + businessDocumentOrder.setOrderStatus(2L); + businessDocumentOrder.setExecuteOrderId(String.valueOf(executeOrderId)); + businessDocumentOrder.setExecuteOrderNumber(businessDocumentOrder.getGoodsNumber()); + businessDocumentOrderMapper.updateById(businessDocumentOrder); + } } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java index 20581a015..8c0d40c17 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java @@ -823,4 +823,7 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{ @ApiModelProperty("删改单申请时间") private Date reviseApplyTime; + @ApiModelProperty("配送进度") + private String deliveryProgress; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java index ee66a54ea..0924ec96f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java @@ -1,6 +1,7 @@ package com.mhd.oms.domain.businessDocumentOrder.repository.todo; import com.mhd.common.core.annotation.Excel; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.dto.BusinessDeliveryDetailsLinkDTO; import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti; import com.mhd.oms.domain.businessOrderAccount.BusinessOrderAccount; import com.mhd.oms.interfaces.assembler.businessDocumentCargoInfo.BusinessDocumentCargoInfo; @@ -864,4 +865,10 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{ @ApiModelProperty("删改单申请时间") private Date reviseApplyTime; + @ApiModelProperty("出库单运输明细") + private List businessDeliveryDetailsLinkDTOList; + + @ApiModelProperty("配送进度") + private String deliveryProgress; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java index 33c0aa0cd..c506dfd5d 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java @@ -8,6 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.businessDeliveryDetailsLink.entity.BusinessDeliveryDetailsLink; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.dto.BusinessDeliveryDetailsLinkDTO; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.mapper.BusinessDeliveryDetailsLinkMapper; 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; @@ -69,6 +72,9 @@ public class BusinessDocumentOrderDomainService { @Resource private ReservationOrderMapper reservationOrderMapper; + + @Resource + private BusinessDeliveryDetailsLinkMapper businessDeliveryDetailsLinkMapper; /** * 分页查询【请填写功能名称】列表 */ @@ -322,7 +328,56 @@ public class BusinessDocumentOrderDomainService { tmsOrder.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId()); } // boolean istrue=businessDocumentOrderService.insert(businessDocumentOrderDO); + + // 判断是否有配送明细 + List businessDeliveryDetailsLinkDTOList = businessDocumentOrderDO.getBusinessDeliveryDetailsLinkDTOList(); + boolean hasDetails = businessDeliveryDetailsLinkDTOList != null && businessDeliveryDetailsLinkDTOList.size() > 0; + + + if (hasDetails) { + tmsOrder.setSplicingOrderType(4L); // 拆单-主单 + } else { + tmsOrder.setSplicingOrderType(0L); // 普通单 + } + boolean istrue = businessDocumentOrderMapper.insert(tmsOrder) > 0; + + // 如果有明细,为每个明细生成一个子单 + if (hasDetails) { + for (BusinessDeliveryDetailsLinkDTO businessDeliveryDetailsLinkDTO : businessDeliveryDetailsLinkDTOList) { +// BusinessDocumentOrder subOrder = new BusinessDocumentOrder(); +// BeanUtils.copyProperties(tmsOrder, subOrder); +// +// // 重置子单的ID和单号 +// subOrder.setId(null); +// subOrder.setGoodsNumber(OrderSequence.getOrderCode()); // 生成新的子单号 +// +// // 设置子单的拼单类型和主单关系 +// subOrder.setSplicingOrderType(3L); // 合单-子单 +// subOrder.setMainOrderId(String.valueOf(tmsOrder.getId())); // 主单ID +// subOrder.setMainOrderNum(tmsOrder.getGoodsNumber()); // 主单号 +// +// // 设置子单的组织信息 +// if (businessDocumentOrderDO.getOrganizationId() != null) { +// subOrder.setOrganizationId(businessDocumentOrderDO.getOrganizationId()); +// } +// if (businessDocumentOrderDO.getOrganizationName() != null) { +// subOrder.setOrganizationName(businessDocumentOrderDO.getOrganizationName()); +// } +// if (businessDocumentOrderDO.getTopOrganizationId() != null) { +// subOrder.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId()); +// } +// +// // 保存子单 +// businessDocumentOrderMapper.insert(subOrder); + + BusinessDeliveryDetailsLink businessDeliveryDetailsLink = new BusinessDeliveryDetailsLink(); + BeanUtils.copyProperties(businessDeliveryDetailsLinkDTO, businessDeliveryDetailsLink); + businessDeliveryDetailsLink.setOrderId(tmsOrder.getId()); +// businessDeliveryDetailsLink.setSubOrderId(subOrder.getId()); + businessDeliveryDetailsLinkMapper.insert(businessDeliveryDetailsLink); + } + } //保存货物信息及地址信息 saveAddress2CargoInfo(tmsOrder.getId(), allCargoList, loadingAddressList, unloadAddressList); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java index 09e03e73f..4cae51e37 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java @@ -143,5 +143,12 @@ public class ExecuteOrder extends BaseVOEntity{ @ApiModelProperty("业务单元") private String businessUnit; + @ApiModelProperty("运输线路") + private String route; + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/po/ExecuteOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/po/ExecuteOrderPO.java index f22a4284e..a0ff2f1e2 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/po/ExecuteOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/po/ExecuteOrderPO.java @@ -203,4 +203,14 @@ public class ExecuteOrderPO extends BaseVOEntity{ @ApiModelProperty("业务单货物集合") private List businessDocumentCargoMultiList; + @ApiModelProperty("运输线路") + private String route; + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; + + @ApiModelProperty("客户编号") + @Excel(name = "客户编号") + private String customerNumber; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/todo/ExecuteOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/todo/ExecuteOrderDO.java index f4c0ace26..a51756b92 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/todo/ExecuteOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/todo/ExecuteOrderDO.java @@ -144,4 +144,11 @@ public class ExecuteOrderDO extends BaseVOEntity{ @ApiModelProperty("业务单元") private String businessUnit; + + @ApiModelProperty("运输线路") + private String route; + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java index 2f3e9cb4a..3b4f52781 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java @@ -1,6 +1,7 @@ package com.mhd.oms.interfaces.dto.businessDocumentOrder; import com.mhd.common.core.annotation.Excel; +import com.mhd.oms.domain.businessDeliveryDetailsLink.repository.dto.BusinessDeliveryDetailsLinkDTO; import com.mhd.oms.domain.businessDocumentAddressMulti.entity.BusinessDocumentAddressMulti; import com.mhd.oms.domain.businessDocumentAddressMulti.repository.todo.BusinessDocumentAddressMultiDO; import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti; @@ -880,4 +881,10 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("删改单申请时间") private Date reviseApplyTime; + + @ApiModelProperty("出库单运输明细") + private List businessDeliveryDetailsLinkDTOList; + + @ApiModelProperty("配送进度") + private String deliveryProgress; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessDocumentOrder/BusinessDocumentOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessDocumentOrder/BusinessDocumentOrderApi.java index 12c54c608..eb5c6df23 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessDocumentOrder/BusinessDocumentOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessDocumentOrder/BusinessDocumentOrderApi.java @@ -4,6 +4,7 @@ import java.util.List; import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessAuditDTO; import io.swagger.annotations.ApiOperation; +import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.mhd.oms.interfaces.dto.businessDocumentOrder.BusinessDocumentOrderDTO; @@ -71,6 +72,12 @@ public class BusinessDocumentOrderApi extends BaseController{ return AjaxResult.success(businessDocumentOrderApplicationService.getFeeDetail(id)); } + @ApiOperation("根据业务单id查询客户配送明细") + @GetMapping("/getDeliveryDetail/{id}") + public AjaxResult getDeliveryDetail(@PathVariable("id") Long id){ + return AjaxResult.success(businessDocumentOrderApplicationService.getDeliveryDetail(id)); + } + /** * 批量删除【业务单】 */ diff --git a/mhd_oms/src/main/resources/mapper/businessDeliveryDetailsLink/BusinessDeliveryDetailsLinkMapper.xml b/mhd_oms/src/main/resources/mapper/businessDeliveryDetailsLink/BusinessDeliveryDetailsLinkMapper.xml new file mode 100644 index 000000000..e327550b7 --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/businessDeliveryDetailsLink/BusinessDeliveryDetailsLinkMapper.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + SELECT + id, + create_by, + create_by_name, + create_time, + update_by, + update_by_name, + update_time, + del_flag, + order_id, + category, + invoice_number, + customer_number, + delivery_name, + box, + bag, + amount + FROM + business_delivery_details_link + WHERE + del_flag = 1 + + + + + and id = #{id} + + + and id in + + #{id} + + + + and order_id = #{orderId} + + + and order_id in + + #{orderId} + + + + and category = #{category} + + + and invoice_number = #{invoiceNumber} + + + and customer_number = #{customerNumber} + + + and delivery_name like concat('%', #{deliveryName}, '%') + + + and box = #{box} + + + and bag = #{bag} + + + and amount = #{amount} + + + and top_organization_id = #{topOrganizationId} + + + and organization_id = #{organizationId} + + + + + diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index c56207614..f5bc9ba68 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -191,6 +191,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + AND SPLICING_ORDER_TYPE in (0, 2, 4) and ID = #{id} @@ -718,8 +719,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc - - + + +