diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/executeOrder/ExecuteOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/executeOrder/ExecuteOrderApplicationService.java index 5841da837..0e0ba874a 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/executeOrder/ExecuteOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/executeOrder/ExecuteOrderApplicationService.java @@ -41,7 +41,7 @@ public class ExecuteOrderApplicationService { /** * 新增【请填写功能名称】 */ - public Boolean insert(ExecuteOrderDO executeOrderDO) { + public Long insert(ExecuteOrderDO executeOrderDO) { return executeOrderDomainService.insert(executeOrderDO); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoInfo/repository/BusinessDocumentCargoInfoMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoInfo/repository/BusinessDocumentCargoInfoMapper.java new file mode 100644 index 000000000..555d1f391 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoInfo/repository/BusinessDocumentCargoInfoMapper.java @@ -0,0 +1,16 @@ +package com.mhd.oms.domain.businessDocumentCargoInfo.repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.oms.interfaces.assembler.businessDocumentCargoInfo.BusinessDocumentCargoInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author: brb + * @description: + * @create: 2026-03-30 17:38 + */ +public interface BusinessDocumentCargoInfoMapper extends BaseMapper { + void insertBatch(@Param("list") List businessDocumentCargoInfoList); +} 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 62c7353fe..e46c72d4c 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 @@ -694,4 +694,41 @@ public class BusinessDocumentOrder extends BaseVOEntity{ @ApiModelProperty("预约单号") private String reservationOrderNumber; + + + @ApiModelProperty("执行单id") + private String executeOrderId; + + @ApiModelProperty("执行单号") + private String executeOrderNumber; + + @ApiModelProperty("收款账户id") + private String paymentAccountId; + + @ApiModelProperty("收款账户信息") + private String accountInformation; + + @ApiModelProperty("业务类型") + private Integer businessCategory; + + @ApiModelProperty(value = "组织地址") + private String companyAddress; + + @ApiModelProperty(value = "组织公司名称") + private String companyName; + +// @ApiModelProperty(value = "组织公司名称英文") +// private String companyNameEn; +// +// @ApiModelProperty(value = "负责人姓名") +// private String contact; +// +// @ApiModelProperty(value = "组织负责人id") +// private String contactPhone; +// + @ApiModelProperty(value = "账户名称") + private String accountName; +// +// @ApiModelProperty(value = "开户银行") +// private String accountBank; } 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 73d6f1680..064f3a5f0 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 @@ -1,6 +1,7 @@ package com.mhd.oms.domain.businessDocumentOrder.repository.persistence; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mhd.common.security.utils.SecurityUtils; @@ -17,6 +18,7 @@ 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 org.springframework.transaction.annotation.Transactional; import java.rmi.ServerException; import java.util.ArrayList; @@ -120,33 +122,51 @@ public class BusinessDocumentOrderImpl extends ServiceImpl().eq(ExecuteOrder::getBusinessDocumentId, id).eq(ExecuteOrder::getDelFlag,1) .last("LIMIT 1") + ); + if (ObjectUtil.isNotNull(objects)) { + throw new ServerException("业务单已生成执行单,请先取消执行单"); + } + + // 先创建执行单 + 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()); + + 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); + } } - + return true; + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("执行失败:" + e.getMessage()); } - return null; } @Override 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 888f89ce5..0b1666f22 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 @@ -706,4 +706,40 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{ @ApiModelProperty("预约单号") private String reservationOrderNumber; + + @ApiModelProperty("执行单id") + private String executeOrderId; + + @ApiModelProperty("执行单号") + private String executeOrderNumber; + + @ApiModelProperty("收款账户id") + private String paymentAccountId; + + @ApiModelProperty("收款账户信息") + private String accountInformation; + + @ApiModelProperty("业务类型") + private Integer businessCategory; + + @ApiModelProperty(value = "组织地址") + private String companyAddress; + + @ApiModelProperty(value = "组织公司名称") + private String companyName; + + @ApiModelProperty(value = "组织公司名称英文") + private String companyNameEn; + + @ApiModelProperty(value = "负责人姓名") + private String contact; + + @ApiModelProperty(value = "组织负责人id") + private String contactPhone; + + @ApiModelProperty(value = "账户名称") + private String accountName; + + @ApiModelProperty(value = "开户银行") + private String accountBank; } 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 ad316a000..003f97786 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 @@ -2,6 +2,7 @@ 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.assembler.businessDocumentCargoInfo.BusinessDocumentCargoInfo; import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO; import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO; import lombok.Data; @@ -728,12 +729,51 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{ @ApiModelProperty("预约单号") private String reservationOrderNumber; + @ApiModelProperty("执行单id") + private String executeOrderId; + + @ApiModelProperty("执行单号") + private String executeOrderNumber; + + @ApiModelProperty("收款账户id") + private String paymentAccountId; + + @ApiModelProperty("收款账户信息") + private String accountInformation; + + @ApiModelProperty("业务类型") + private Integer businessCategory; + + @ApiModelProperty(value = "组织地址") + private String companyAddress; + + @ApiModelProperty(value = "组织公司名称") + private String companyName; + + @ApiModelProperty(value = "组织公司名称英文") + private String companyNameEn; + + @ApiModelProperty(value = "负责人姓名") + private String contact; + + @ApiModelProperty(value = "组织负责人id") + private String contactPhone; + + @ApiModelProperty(value = "账户名称") + private String accountName; + + @ApiModelProperty(value = "开户银行") + private String accountBank; + @ApiModelProperty("业务单地址集合") private List businessDocumentAddressMultiDTOList; @ApiModelProperty("业务单货物集合") private List businessDocumentCargoMultiList; + @ApiModelProperty("业务单货物详情集合") + private List cargoInfoList; + @ApiModelProperty(value = "装货地址集合") private List loadingAddressList; @ApiModelProperty(value = "卸货地址集合") 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 04b856655..5852f4b29 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 @@ -15,6 +15,7 @@ import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCarg 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.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.orderType.entity.OrderType; @@ -57,6 +58,9 @@ public class BusinessDocumentOrderDomainService { @Resource private BusinessDocumentAddressMultiMapper businessDocumentAddressMultiMapper; + + @Resource + private BusinessDocumentOrderMapper businessDocumentOrderMapper; /** * 分页查询【请填写功能名称】列表 */ @@ -210,6 +214,8 @@ public class BusinessDocumentOrderDomainService { tmsOrder.setFreighterName(firstAddress.getContactName()); tmsOrder.setLoadingPhone(firstAddress.getContactPhone()); tmsOrder.setLoadingDate(firstAddress.getLayDate()); + tmsOrder.setAppointShipper(businessDocumentOrderDO.getAppointShipper()); + tmsOrder.setAppointShipperId(businessDocumentOrderDO.getAppointShipperId()); tmsOrder.setUnloadAreaId(lastAddress.getAreaCode()); tmsOrder.setUnloadName(lastAddress.getAreaCode()); @@ -300,7 +306,8 @@ public class BusinessDocumentOrderDomainService { if (businessDocumentOrderDO.getTopOrganizationId() != null) { tmsOrder.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId()); } - boolean istrue=businessDocumentOrderService.insert(businessDocumentOrderDO); +// boolean istrue=businessDocumentOrderService.insert(businessDocumentOrderDO); + boolean istrue = businessDocumentOrderMapper.insert(tmsOrder) > 0; //保存货物信息及地址信息 saveAddress2CargoInfo(tmsOrder.getId(), allCargoList, loadingAddressList, unloadAddressList); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/facade/IExecuteOrderService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/facade/IExecuteOrderService.java index d2b33e9b8..5db032928 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/facade/IExecuteOrderService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/facade/IExecuteOrderService.java @@ -23,7 +23,7 @@ public interface IExecuteOrderService extends IService /** * 新增【请填写功能名称】 */ - public Boolean insert(ExecuteOrderDO executeOrderDO); + public Long insert(ExecuteOrderDO executeOrderDO); /** * 修改【请填写功能名称】 diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/persistence/ExecuteOrderImpl.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/persistence/ExecuteOrderImpl.java index 815fe1fd1..719c8b0b1 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/persistence/ExecuteOrderImpl.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/persistence/ExecuteOrderImpl.java @@ -67,10 +67,11 @@ public class ExecuteOrderImpl extends ServiceImpl businessDocumentAddressMultiDTOList; + @ApiModelProperty("业务单货物集合") - private List businessDocumentCargoMultiList; + private List businessDocumentCargoMultiList1; + + @ApiModelProperty("业务单货物集合") + private List businessDocumentCargoMultiList; + @ApiModelProperty(value = "装货地址集合") private List loadingAddressList; 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 c8ff6b876..4de65d716 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 @@ -10,6 +10,7 @@ import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocument import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO; import com.mhd.oms.application.service.businessDocumentOrder.BusinessDocumentOrderApplicationService; import com.mhd.oms.interfaces.assembler.businessDocumentOrder.BusinessDocumentOrderAssembler; +import com.github.pagehelper.PageHelper; import javax.annotation.Resource; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; @@ -35,11 +36,14 @@ public class BusinessDocumentOrderApi extends BaseController{ */ @ApiOperation("查询【业务单】列表") @GetMapping("/list") - public TableDataInfo list(BusinessDocumentOrderDTO businessDocumentOrderDTO) + public TableDataInfo list(BusinessDocumentOrderDTO businessDocumentOrderDTO, + @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize) { //转换实体 BusinessDocumentOrderDO businessDocumentOrderDO = businessDocumentOrderAssembler.toDO(businessDocumentOrderDTO); - startPage(); + // 使用 PageHelper 手动分页,支持 pageNo 参数 + PageHelper.startPage(pageNo, pageSize); List list = businessDocumentOrderApplicationService.queryList(businessDocumentOrderDO); return getDataTable(list); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/executeOrder/ExecuteOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/executeOrder/ExecuteOrderApi.java index edfb38e71..099bce344 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/executeOrder/ExecuteOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/executeOrder/ExecuteOrderApi.java @@ -56,7 +56,8 @@ public class ExecuteOrderApi extends BaseController{ if(executeOrderDTO.getId() != null){ return toAjax(executeOrderApplicationService.update(executeOrderDO)); }else { - return toAjax(executeOrderApplicationService.insert(executeOrderDO)); + Long executeOrderId = executeOrderApplicationService.insert(executeOrderDO); + return executeOrderId != null ? success() : error(); } } diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentCargoInfo/BusinessDocumentCargoInfoMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentCargoInfo/BusinessDocumentCargoInfoMapper.xml new file mode 100644 index 000000000..5434bbf91 --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/businessDocumentCargoInfo/BusinessDocumentCargoInfoMapper.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index 1a073a464..31d66cc90 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -194,7 +194,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and CREATE_TIME >= #{createStartTime} - and CREATE_TIME <= DATE_ADD(#{createEndTime}, INTERVAL 1 DAY - 1 SECOND) + and CREATE_TIME <= #{createEndTime} + 1 - 1/86400 @@ -669,6 +669,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"