diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAccount.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAccount.java new file mode 100644 index 000000000..92d7e1154 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAccount.java @@ -0,0 +1,107 @@ +package com.mhd.common.core.domain.dto.wlhy; + +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 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; + +/** + * @author: brb + * @description: + * @create: 2026-04-15 11:04 + */ +@Data +public class TmsOrderAccount implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ID_WORKER_STR) + private String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + @Excel(name = "创建人", width = 15) + 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 = "更新人") + @Excel(name = "更新人", width = 15) + 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 = "所属部门") + @Excel(name = "所属部门", width = 15) + private String sysOrgCode; + /**删除标识*/ + @ApiModelProperty(value = "删除标识") + @Excel(name = "删除标识", width = 15) + private Integer isDelete; + /**所属组织*/ + @ApiModelProperty(value = "所属组织") + @Excel(name = "所属组织", width = 15) + private String orgName; + /**组织ID*/ + @ApiModelProperty(value = "组织ID") + @Excel(name = "组织ID", width = 15) + private Long organizationId; + /**一级组织ID*/ + @ApiModelProperty(value = "一级组织ID") + @Excel(name = "一级组织ID", width = 15) + private Long topOrganizationId; + /**组织名称*/ + @ApiModelProperty(value = "组织名称") + @Excel(name = "组织名称", width = 15) + private String organizationName; + /**订单id*/ + @ApiModelProperty(value = "订单id") + @Excel(name = "订单id", width = 15) + private String orderId; + /**科目id*/ + @ApiModelProperty(value = "科目id") + @Excel(name = "科目id", width = 15) + private Long accountId; + /**科目收支类型(1-应收,2-应付*/ + @ApiModelProperty(value = "科目收支类型(1-应收,2-应付") + @Excel(name = "科目收支类型(1-应收,2-应付", width = 15) + private Long accountType; + /**科目编码*/ + @ApiModelProperty(value = "科目编码") + @Excel(name = "科目编码", width = 15) + private String subjectCode; + /**科目名称*/ + @ApiModelProperty(value = "科目名称") + @Excel(name = "科目名称", width = 15) + private String subjectName; + /**科目费率*/ + @ApiModelProperty(value = "科目费率") + @Excel(name = "科目费率", width = 15) + private BigDecimal rate; + + /**金额*/ + @ApiModelProperty(value = "金额") + @Excel(name = "金额", width = 15) + private BigDecimal amount; + @ApiModelProperty(value = "无税费用") + private BigDecimal taxFreeFee; + @ApiModelProperty(value = "税额") + private BigDecimal taxAmount; + @ApiModelProperty(value = "收款帐户") + private String receiveAccount; +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAddDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAddDTO.java index 6ad5c72a7..611dd6cb8 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAddDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsOrderAddDTO.java @@ -228,6 +228,11 @@ TmsOrderAddDTO implements Serializable { @ApiModelProperty(value = "货物数量单位") private String goodsQuantityUnit; + @ApiModelProperty("收款账户") + private String accountName; + @ApiModelProperty("收款账户信息") + private String accountInformation; + // @ApiModelProperty("项目表ID") // private Long projectManagementId; @@ -286,6 +291,9 @@ TmsOrderAddDTO implements Serializable { @ApiModelProperty(value = "卸货地址集合") private List unloadAddressList; + @ApiModelProperty("费用科目明细") + private List tmsOrderAccountList; + diff --git a/mhd-modules/mhd-system/pom.xml b/mhd-modules/mhd-system/pom.xml index 0105f9288..505d9822a 100644 --- a/mhd-modules/mhd-system/pom.xml +++ b/mhd-modules/mhd-system/pom.xml @@ -92,7 +92,7 @@ org.projectlombok lombok - 1.18.24 + 1.18.22 com.baomidou diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/persistence/BmsInvoiceListServiceImpl.java b/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/persistence/BmsInvoiceListServiceImpl.java index a766acff2..2b058e5a3 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/persistence/BmsInvoiceListServiceImpl.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/persistence/BmsInvoiceListServiceImpl.java @@ -2,6 +2,7 @@ package com.mhd.bms.domain.bmsInvoiceList.repository.persistence; 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.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -184,12 +185,22 @@ public class BmsInvoiceListServiceImpl extends ServiceImpl billManageIds = bmsInvoiceListAddDTO.getBillManageIds(); + List billManages = billManageMapper.selectList(new LambdaQueryWrapper().in(BillManage::getBillManageId, billManageIds)); + if (billManages != null && billManages.size() > 0) { + for (BillManage billManage : billManages) { + billManage.setIsInvoice(1); + billManage.setInvoiceId(bmsInvoiceList.getId().toString()); + billManage.setApplyNumber(bmsInvoiceList.getApplyNumber()); + billManageMapper.updateById(billManage); + } } /*AjaxResult ajaxResult = financeServiceFeign.editIsInvoice(transportationId,1,bmsInvoiceList.getId(),"",bmsInvoiceList.getApplyNumber()); if(!"200".equals(String.valueOf(ajaxResult.get("code")))){ @@ -466,6 +477,19 @@ public class BmsInvoiceListServiceImpl extends ServiceImpl billManages = billManageMapper.selectList(new QueryWrapper().lambda().eq(BillManage::getInvoiceId, id.toString())); + if (ObjectUtil.isNotNull(billManages) && billManages.size() > 0) { + for (BillManage billManage : billManages) { + if (bmsInvoiceListInvoiceStateDTO.getInvoiceState() ==5){ + billManage.setIsInvoice(5); + } + if (bmsInvoiceListInvoiceStateDTO.getInvoiceState() == 3){ + billManage.setIsInvoice(4); + } + billManageMapper.updateById(billManage); + } + } return bmsInvoiceList.getInvoiceState(); } diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/todo/BmsInvoiceListAddDTO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/todo/BmsInvoiceListAddDTO.java index 76935b6a7..9786f26ff 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/todo/BmsInvoiceListAddDTO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/todo/BmsInvoiceListAddDTO.java @@ -76,5 +76,8 @@ public class BmsInvoiceListAddDTO implements Serializable { private String settlementEntity; private List bmsMakeOutInvoices; + @ApiModelProperty(value = "对账单id列表") + @Excel(name = "对账单id列表", width = 15) + private List billManageIds; } \ No newline at end of file diff --git a/mhd_bms/src/main/resources/mapper/BmsInvoiceListMapper.xml b/mhd_bms/src/main/resources/mapper/BmsInvoiceListMapper.xml index 04aece942..4f2eb2a0a 100644 --- a/mhd_bms/src/main/resources/mapper/BmsInvoiceListMapper.xml +++ b/mhd_bms/src/main/resources/mapper/BmsInvoiceListMapper.xml @@ -144,8 +144,14 @@ a.tracking_number, a.apply_number, a.company_name as companyName, - b.bill_number as billNumber, - b.bill_manage_id as billManageId, +-- b.bill_number as billNumber, +-- b.bill_manage_id as billManageId, + (SELECT LISTAGG(bill_number, ', ') WITHIN GROUP (ORDER BY bill_number) + FROM BILL_MANAGE b_sub + WHERE b_sub.apply_number = a.apply_number) as billNumber, + (SELECT LISTAGG(bill_manage_id, ', ') WITHIN GROUP (ORDER BY bill_manage_id) + FROM BILL_MANAGE b_sub + WHERE b_sub.apply_number = a.apply_number) as billManageId, a.SETTLEMENT_CURRENCY as settlementCurrency, a.organization_id AS organizationId, a.organization_name AS organizationName, 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 7b1846c06..64d90b32e 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 @@ -85,11 +85,16 @@ public class BusinessDocumentOrderApplicationService { public boolean execute(Long[] ids) { return businessDocumentOrderDomainService.execute(ids); } + + public boolean executeAndIssue(Long[] ids) { + return businessDocumentOrderDomainService.executeAndIssue(ids); + } + public boolean cancelExecute(Long[] ids) throws Exception{ return businessDocumentOrderDomainService.cancelExecute(ids); } - public BusinessDocumentCargoMulti getCargoContent(Long id) { + public List getCargoContent(Long id) { return businessDocumentOrderDomainService.getCargoContent(id); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java index 09bd2c45b..849033891 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java @@ -99,4 +99,7 @@ public class BusinessDocumentCargoMulti extends BaseVOEntity{ @ApiModelProperty("$column.columnComment") @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") private String orderId; + + @ApiModelProperty("货物内容") + private String materialContent; } 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 f0df40b7b..36cf856eb 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 @@ -741,6 +741,9 @@ public class BusinessDocumentOrder extends BaseVOEntity{ @ApiModelProperty(value = "订单来源") private String orderSource; + @ApiModelProperty("预计出发日期") + private Date layDate; + @ApiModelProperty(value = "出入库单号") private String entryNumber; diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java index f78b70f0c..de290e704 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java @@ -37,6 +37,8 @@ public interface IBusinessDocumentOrderService extends IService executeOrderList = executeOrderMapper.selectList(new LambdaQueryWrapper().eq(ExecuteOrder::getGoodsNumber, executeOrderNumber).eq(ExecuteOrder::getDelFlag,1)); + if (executeOrderList.size()>0){ + businessDocumentOrderPO.setExecuteOrderList(executeOrderList); + } + } + //获取货物信息 + List businessDocumentCargoMultiList = businessDocumentCargoMultiMapper.selectList(new LambdaQueryWrapper().eq(BusinessDocumentCargoMulti::getOrderId, id).eq(BusinessDocumentCargoMulti::getDelFlag,1)); + if (businessDocumentCargoMultiList.size()>0){ + businessDocumentOrderPO.setBusinessDocumentCargoMultiList(businessDocumentCargoMultiList); + } return businessDocumentOrderPO; } @@ -146,11 +182,14 @@ 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(); + BeanUtils.copyProperties(businessDocumentOrder,executeOrderDO); + executeOrderDO.setDocumentDate(businessDocumentOrder.getDocumentDate()); + 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()); + + 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); + + // 创建执行单后立即下发到TMS + ExecuteOrder executeOrder = executeOrderMapper.selectById(executeOrderId); + if (ObjectUtil.isNotNull(executeOrder)){ + executeOrder.setIssueStatus(2L); + executeOrder.setIssueTime(new Date()); + executeOrder.setIssueId(loginUser.getUserid()); + executeOrder.setIssueName(loginUser.getWlhyLoginUser().getRealname()); + executeOrder.setUpdateByName(loginUser.getWlhyLoginUser().getRealname()); + executeOrder.setOrderStatus(1L); + executeOrderMapper.updateById(executeOrder); + + //下发到tms + TmsOrderAddDTO tmsOrderAddDTO=new TmsOrderAddDTO(); + List cargoInfoList=new ArrayList(); + List loadingAddressList=new ArrayList(); + List unloadAddressList=new ArrayList(); + List tmsOrderAccountList=new ArrayList(); + + if(ObjectUtil.isNotNull(businessDocumentOrder)){ + BeanUtils.copyProperties(businessDocumentOrder,tmsOrderAddDTO); + tmsOrderAddDTO.setExecuteOrderId(String.valueOf(executeOrderId)); + tmsOrderAddDTO.setExecuteOrderNumber(executeOrder.getGoodsNumber()); + + //货物信息 + List businessDocumentCargoMultiList=businessDocumentCargoMultiMapper.selectList(new QueryWrapper().lambda() + .eq(BusinessDocumentCargoMulti::getOrderId,businessDocumentOrder.getId()) + .eq(BusinessDocumentCargoMulti::getDelFlag,1)); + if(ObjectUtil.isNotNull(businessDocumentCargoMultiList)&&businessDocumentCargoMultiList.size()>0){ + for (BusinessDocumentCargoMulti businessDocumentCargoMulti:businessDocumentCargoMultiList){ + TmsCargoInfoDTO tmsCargoInfoDTO=new TmsCargoInfoDTO(); + BeanUtils.copyProperties(businessDocumentCargoMulti,tmsCargoInfoDTO); + cargoInfoList.add(tmsCargoInfoDTO); + } + } + + //装货地址信息 + List businessDocumentAddressMultiList=businessDocumentAddressMultiMapper.selectList(new QueryWrapper().lambda() + .eq(BusinessDocumentAddressMulti::getOrderId,businessDocumentOrder.getId()) + .eq(BusinessDocumentAddressMulti::getDelFlag,1) + .eq(BusinessDocumentAddressMulti::getLayType,1)); + if(ObjectUtil.isNotNull(businessDocumentAddressMultiList)&&businessDocumentAddressMultiList.size()>0){ + for (BusinessDocumentAddressMulti businessDocumentAddressMulti:businessDocumentAddressMultiList){ + TmsAddressMultiDTO tmsAddressMultiDTO=new TmsAddressMultiDTO(); + BeanUtils.copyProperties(businessDocumentAddressMulti,tmsAddressMultiDTO); + loadingAddressList.add(tmsAddressMultiDTO); + } + } + + //卸货货地址信息 + List businessDocumentAddressMultiUnloadList=businessDocumentAddressMultiMapper.selectList(new QueryWrapper().lambda() + .eq(BusinessDocumentAddressMulti::getOrderId,businessDocumentOrder.getId()) + .eq(BusinessDocumentAddressMulti::getDelFlag,1) + .eq(BusinessDocumentAddressMulti::getLayType,2)); + if(ObjectUtil.isNotNull(businessDocumentAddressMultiUnloadList)&&businessDocumentAddressMultiUnloadList.size()>0){ + for (BusinessDocumentAddressMulti businessDocumentAddressMulti:businessDocumentAddressMultiUnloadList){ + TmsAddressMultiDTO tmsAddressMultiDTO=new TmsAddressMultiDTO(); + BeanUtils.copyProperties(businessDocumentAddressMulti,tmsAddressMultiDTO); + tmsAddressMultiDTO.setLayType(2); + unloadAddressList.add(tmsAddressMultiDTO); + } + } + + //账单信息 + List businessOrderAccountList = businessOrderAccountMapper.selectList(new QueryWrapper().lambda() + .eq(BusinessOrderAccount::getOrderId, businessDocumentOrder.getId()) + .eq(BusinessOrderAccount::getIsDelete, 0)); + if(ObjectUtil.isNotNull(businessOrderAccountList)&&businessOrderAccountList.size()>0){ + for (BusinessOrderAccount businessOrderAccount:businessOrderAccountList){ + TmsOrderAccount tmsOrderAccount = new TmsOrderAccount(); + BeanUtils.copyProperties(businessOrderAccount, tmsOrderAccount); + tmsOrderAccountList.add(tmsOrderAccount); + } + } + + tmsOrderAddDTO.setAppointShipper(businessDocumentOrder.getAppointShipper()); + tmsOrderAddDTO.setAppointShipperId(businessDocumentOrder.getAppointShipperId()); + tmsOrderAddDTO.setCargoInfoList(cargoInfoList); + tmsOrderAddDTO.setLoadingAddressList(loadingAddressList); + tmsOrderAddDTO.setUnloadAddressList(unloadAddressList); + tmsOrderAddDTO.setTmsOrderAccountList(tmsOrderAccountList); + tmsOrderAddDTO.setOrderShippingType(businessDocumentOrder.getOrderShippingType().intValue()); + tmsOrderAddDTO.setPayerType(0); + tmsOrderAddDTO.setExecuteOrderNumber(executeOrder.getGoodsNumber()); + tmsOrderAddDTO.setOrderSource("0"); + + AjaxResult ajaxResult=wlhyServiceFeign.add(tmsOrderAddDTO); + if(ajaxResult.get("code").toString().equals("200")){ + String goodsNumber = (String) ajaxResult.get("data"); + if(ObjectUtil.isNotEmpty(goodsNumber)){ + executeOrder.setTmsOrderNumber(goodsNumber); + executeOrderMapper.updateById(executeOrder); + } + }else { + throw new ServiceException(ajaxResult.get("msg").toString()); + } + } + } + } + } + return true; + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("执行并下发失败:" + e.getMessage()); + } + } + @Override @Transactional(rollbackFor = Exception.class) public Boolean cancelExecute(Long[] ids) throws Exception{ @@ -196,7 +388,7 @@ public class BusinessDocumentOrderImpl extends ServiceImpl0){ for (ExecuteOrder executeOrder:list){ if(executeOrder.getIssueStatus()==2){ - throw new ServerException("业务单已生成执行单,请先确认执行单{执行单号}是否可取消"); + throw new ServerException("业务单已生成执行单,请先确认执行单"+executeOrder.getGoodsNumber()+"是否可取消"); }else{ executeOrder.setOrderStatus(3L); executeOrder.setIssueStatus(1L); 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 0e8e9d03d..d51a4a339 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 @@ -1,12 +1,16 @@ package com.mhd.oms.domain.businessDocumentOrder.repository.po; import com.mhd.common.core.annotation.Excel; +import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti; +import com.mhd.oms.domain.executeOrder.entity.ExecuteOrder; 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 java.util.List; + import com.mhd.common.core.web.domain.BaseVOEntity; import org.springframework.format.annotation.DateTimeFormat; @@ -357,7 +361,7 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{ @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") private String biddingUnit; - @ApiModelProperty("业务单状态 0-待审核 1-待执行 2-进行中 3-已完成 4-已取消 5-已拦截") + @ApiModelProperty("业务单状态 0-待审核 1-待执行 2-进行中 3-已完成 4-已取消 5-运输中 6-已拦截") private Long orderStatus; @ApiModelProperty("$column.columnComment") @@ -754,4 +758,13 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{ @ApiModelProperty(value = "出入库单号") private String entryNumber; + + @ApiModelProperty("预计出发日期") + private Date layDate; + + @ApiModelProperty("执行单") + private List executeOrderList; + + @ApiModelProperty("货物信息") + private List businessDocumentCargoMultiList; } 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 88ffbbf7e..0d54d110a 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 @@ -739,6 +739,9 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{ @ApiModelProperty("收款账户id") private String paymentAccountId; + @ApiModelProperty("预计出发日期") + private Date layDate; + @ApiModelProperty("收款账户信息") private String accountInformation; 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 1f910ed14..e443ba1db 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 @@ -168,10 +168,10 @@ public class BusinessDocumentOrderDomainService { tmsOrder.setCreateCompanyId(String.valueOf(userShipperPo.getUserId())); } tmsOrder.setCreateTime(new Date()); - tmsOrder.setCreaterName(u.getUsername());//保存创建人姓名 + tmsOrder.setCreaterName(u.getWlhyLoginUser().getRealname());//保存创建人姓名 tmsOrder.setCreaterPhone(u.getUserPo().getUserPhone());//保存创建人电话 tmsOrder.setRealCreateBy(String.valueOf(u.getUserid())); - tmsOrder.setRealCreateName(u.getUsername()); + tmsOrder.setRealCreateName(u.getWlhyLoginUser().getRealname()); tmsOrder.setAppointShipper(userShipperPo.getShipperEnterpriseName());//20250-07-29修改:订单表委托方保存公司名字,而不是姓名 tmsOrder.setOrderSource(businessDocumentOrderDO.getOrderSource()); tmsOrder.setEntryNumber(businessDocumentOrderDO.getEntryNumber()); @@ -419,10 +419,10 @@ public class BusinessDocumentOrderDomainService { tmsOrder.setCreateCompanyId(String.valueOf(userShipperPo.getUserId())); } tmsOrder.setCreateTime(new Date()); - tmsOrder.setCreaterName(u.getUsername());//保存创建人姓名 + tmsOrder.setCreaterName(u.getWlhyLoginUser().getRealname());//保存创建人姓名 tmsOrder.setCreaterPhone(u.getUserPo().getUserPhone());//保存创建人电话 tmsOrder.setRealCreateBy(String.valueOf(u.getUserid())); - tmsOrder.setRealCreateName(u.getUsername()); + tmsOrder.setRealCreateName(u.getWlhyLoginUser().getRealname()); tmsOrder.setAppointShipper(userShipperPo.getShipperEnterpriseName());//20250-07-29修改:订单表委托方保存公司名字,而不是姓名 String salesmanCodeNc = businessDocumentOrderDO.getSalesmanId(); if (salesmanCodeNc != null){ @@ -730,6 +730,11 @@ public class BusinessDocumentOrderDomainService { public Boolean execute(Long[] ids) { return businessDocumentOrderService.execute(ids); } + + public Boolean executeAndIssue(Long[] ids) { + return businessDocumentOrderService.executeAndIssue(ids); + } + public Boolean cancelExecute(Long[] ids) throws Exception { return businessDocumentOrderService.cancelExecute(ids); } @@ -773,8 +778,8 @@ public class BusinessDocumentOrderDomainService { return serviceRequire.toString(); } - public BusinessDocumentCargoMulti getCargoContent(Long id){ - BusinessDocumentCargoMulti businessDocumentCargoMulti = businessDocumentCargoMultiMapper.selectOne(new LambdaQueryWrapper().eq(BusinessDocumentCargoMulti::getOrderId, id)); + public List getCargoContent(Long id){ + List businessDocumentCargoMulti = businessDocumentCargoMultiMapper.selectList(new LambdaQueryWrapper().eq(BusinessDocumentCargoMulti::getOrderId, id)); if (businessDocumentCargoMulti != null){ return businessDocumentCargoMulti ; } 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 3dd1c6119..e355ffd06 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 @@ -83,10 +83,30 @@ public class ExecuteOrder extends BaseVOEntity{ @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 loadingName; + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String loadingAddress; + + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String freighterName; + + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String dischargerName; + + @ApiModelProperty("预计出发日期") + private Date layDate; + + @ApiModelProperty( "下发状态 0-无状态 1-未下发 2-已下发 ") private Long issueStatus; @@ -119,4 +139,6 @@ public class ExecuteOrder extends BaseVOEntity{ @ApiModelProperty("备注") private String shippingNote; + + } 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 c2173702b..8058208a7 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 @@ -5,6 +5,7 @@ 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.TmsOrderAccount; import com.mhd.common.core.domain.dto.wlhy.TmsOrderAddDTO; import com.mhd.common.core.domain.entity.TmsOrder; import com.mhd.common.core.exception.ServiceException; @@ -16,6 +17,8 @@ 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.mapper.BusinessDocumentOrderMapper; +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.facade.IExecuteOrderService; import com.mhd.oms.domain.executeOrder.repository.mapper.ExecuteOrderMapper; @@ -53,6 +56,8 @@ public class ExecuteOrderImpl extends ServiceImpl cargoInfoList=new ArrayList(); List loadingAddressList=new ArrayList(); List unloadAddressList=new ArrayList(); + List tmsOrderAccountList=new ArrayList(); BusinessDocumentOrder businessDocumentOrder=businessDocumentOrderMapper.selectById(executeOrder.getBusinessDocumentId()); if(ObjectUtil.isNotNull(businessDocumentOrder)){ BeanUtils.copyProperties(businessDocumentOrder,tmsOrderAddDTO); @@ -157,11 +164,27 @@ public class ExecuteOrderImpl extends ServiceImpl businessOrderAccountList = businessOrderAccountMapper.selectList(new QueryWrapper().lambda() + .eq(BusinessOrderAccount::getOrderId, businessDocumentOrder.getId()) + .eq(BusinessOrderAccount::getIsDelete, 0)); + if(ObjectUtil.isNotNull(businessOrderAccountList)&&businessOrderAccountList.size()>0){ + for (BusinessOrderAccount businessOrderAccount:businessOrderAccountList){ + TmsOrderAccount tmsOrderAccount = new TmsOrderAccount(); + BeanUtils.copyProperties(businessOrderAccount, tmsOrderAccount); + tmsOrderAccountList.add(tmsOrderAccount); + + + } + } + + tmsOrderAddDTO.setAppointShipper(businessDocumentOrder.getAppointShipper()); tmsOrderAddDTO.setAppointShipperId(businessDocumentOrder.getAppointShipperId()); tmsOrderAddDTO.setCargoInfoList(cargoInfoList); tmsOrderAddDTO.setLoadingAddressList(loadingAddressList); tmsOrderAddDTO.setUnloadAddressList(unloadAddressList); + tmsOrderAddDTO.setTmsOrderAccountList(tmsOrderAccountList); tmsOrderAddDTO.setOrderShippingType(businessDocumentOrder.getOrderShippingType().intValue()); tmsOrderAddDTO.setPayerType(0); tmsOrderAddDTO.setExecuteOrderNumber(executeOrder.getGoodsNumber()); @@ -198,16 +221,17 @@ public class ExecuteOrderImpl extends ServiceImpl().lambda().eq(BusinessDocumentOrder::getId,executeOrder.getBusinessDocumentId())); + BeanUtils.copyProperties(businessDocumentOrder,executeOrderPO); + List businessDocumentCargoMultis = businessDocumentCargoMultiMapper.selectList(new QueryWrapper().lambda().eq(BusinessDocumentCargoMulti::getOrderId, executeOrder.getBusinessDocumentId()).eq(BusinessDocumentCargoMulti::getDelFlag, 1)); + + executeOrderPO.setBusinessDocumentCargoMultiList(businessDocumentCargoMultis); return executeOrderPO; } } 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 1a0768b6e..88fdd2cfd 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 @@ -1,6 +1,8 @@ package com.mhd.oms.domain.executeOrder.repository.po; import com.mhd.common.core.annotation.Excel; +import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti; +import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO; import lombok.Data; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -125,4 +127,77 @@ public class ExecuteOrderPO extends BaseVOEntity{ @ApiModelProperty("备注") private String shippingNote; + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String loadingPhone; + + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String unloadPhone; + + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String recipientName; + + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String freighterName; + + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private BigDecimal weightMax; + + @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 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 loadingAreaId; + + + @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 Date layDate; + + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String loadingUnit; + + @ApiModelProperty("$column.columnComment") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String salesmanName; + + @ApiModelProperty("业务单货物集合") + private List businessDocumentCargoMultiList; + } 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 cce380127..f7f4b098f 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 @@ -112,6 +112,9 @@ public class ExecuteOrderDO extends BaseVOEntity{ @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") private String loadingName; + @ApiModelProperty("预计出发日期") + private Date layDate; + @ApiModelProperty(name = "组织ID集合") private List organizationIdList; diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java index fc6120cf1..168c2f5ab 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java @@ -102,4 +102,7 @@ public class BusinessDocumentCargoMultiDTO extends BaseVOEntity{ @ApiModelProperty("体积") private BigDecimal materialVolume; + @ApiModelProperty("货物内容") + private String materialContent; + } 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 86835f170..646294525 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 @@ -765,6 +765,9 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{ @ApiModelProperty(value = "出入库单号") private String entryNumber; + @ApiModelProperty("预计出发日期") + private Date layDate; + @ApiModelProperty("业务单地址集合") private List businessDocumentAddressMultiDTOList; diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java index 9d74bd988..a6060fa94 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java @@ -128,4 +128,7 @@ public class ExecuteOrderDTO extends BaseVOEntity{ @ApiModelProperty("备注") private String shippingNote; + + @ApiModelProperty("预计出发日期") + private Date layDate; } 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 4dced3b3b..930aa644a 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 @@ -110,6 +110,17 @@ public class BusinessDocumentOrderApi extends BaseController{ { return toAjax(businessDocumentOrderApplicationService.execute(ids)); } + + /** + * 批量执行并下发【业务单】 + */ + @ApiOperation("批量执行并下发【业务单】") + @PostMapping("/executeAndIssue") + public AjaxResult executeAndIssue(@RequestParam("ids") Long[] ids) + { + return toAjax(businessDocumentOrderApplicationService.executeAndIssue(ids)); + } + @ApiOperation("获取业务单的货物内容") @GetMapping("/getCargoContent/{id}") public AjaxResult getCargoContent(@PathVariable("id") Long id)