Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
王奎兴
2026-04-13 15:15:01 +08:00
18 changed files with 376 additions and 0 deletions
@@ -473,4 +473,7 @@ TmsOrderAddDTO implements Serializable {
@ApiModelProperty("执行单号")
private String executeOrderNumber;
@ApiModelProperty("订单来源 0oms 1tms")
private String orderSource;
}
@@ -1,16 +1,20 @@
package com.mhd.oms.application.service.businessDocumentOrder;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti;
import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO;
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
import com.mhd.oms.domain.businessDocumentOrder.service.BusinessDocumentOrderDomainService;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.businessOrderAccount.BusinessOrderAccount;
import com.mhd.oms.domain.businessOrderAccount.repository.mapper.BusinessOrderAccountMapper;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
import java.util.List;
/**
* 【请填写功能名称】ApplicationService
@@ -24,6 +28,9 @@ public class BusinessDocumentOrderApplicationService {
@Autowired
private BusinessDocumentOrderDomainService businessDocumentOrderDomainService;
@Resource
private BusinessOrderAccountMapper businessOrderAccountMapper;
/**
* 分页查询【请填写功能名称】列表
@@ -85,4 +92,9 @@ public class BusinessDocumentOrderApplicationService {
public BusinessDocumentCargoMulti getCargoContent(Long id) {
return businessDocumentOrderDomainService.getCargoContent(id);
}
public List<BusinessOrderAccount> getFeeDetail(Long id) {
List<BusinessOrderAccount> businessOrderAccounts = businessOrderAccountMapper.selectList(new LambdaQueryWrapper<BusinessOrderAccount>().eq(BusinessOrderAccount::getOrderId, id).eq(BusinessOrderAccount::getIsDelete, 0));
return businessOrderAccounts;
}
}
@@ -737,4 +737,11 @@ public class BusinessDocumentOrder extends BaseVOEntity{
@ApiModelProperty(value = "审核意见")
private String reviewOpinion;
@ApiModelProperty(value = "订单来源")
private String orderSource;
@ApiModelProperty(value = "出入库单号")
private String entryNumber;
}
@@ -145,6 +145,7 @@ public class BusinessDocumentOrderImpl extends ServiceImpl<BusinessDocumentOrder
// 先创建执行单
ExecuteOrderDO executeOrderDO=new ExecuteOrderDO();
BeanUtils.copyProperties(businessDocumentOrder,executeOrderDO);
executeOrderDO.setDocumentDate(businessDocumentOrder.getDocumentDate());
executeOrderDO.setBusinessDocumentId(id);
executeOrderDO.setBusinessDocumentNumber(businessDocumentOrder.getGoodsNumber());
executeOrderDO.setGoodsNumber(businessDocumentOrder.getGoodsNumber());
@@ -748,4 +748,10 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{
@ApiModelProperty(value = "审核意见")
private String reviewOpinion;
@ApiModelProperty(value = "订单来源")
private String orderSource;
@ApiModelProperty(value = "出入库单号")
private String entryNumber;
}
@@ -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.domain.businessOrderAccount.BusinessOrderAccount;
import com.mhd.oms.interfaces.assembler.businessDocumentCargoInfo.BusinessDocumentCargoInfo;
import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO;
import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO;
@@ -771,6 +772,15 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{
@ApiModelProperty(value = "审核意见")
private String reviewOpinion;
@ApiModelProperty("订单来源")
private String orderSource;
@ApiModelProperty(value = "出入库单号")
private String entryNumber;
@ApiModelProperty("费用科目明细")
private List<BusinessOrderAccount> businessOrderAccountList;
@ApiModelProperty("业务单地址集合")
private List<BusinessDocumentAddressMultiDTO> businessDocumentAddressMultiDTOList;
@@ -18,6 +18,8 @@ import com.mhd.oms.domain.businessDocumentOrder.repository.facade.IBusinessDocum
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.businessOrderAccount.BusinessOrderAccount;
import com.mhd.oms.domain.businessOrderAccount.repository.mapper.BusinessOrderAccountMapper;
import com.mhd.oms.domain.orderType.entity.OrderType;
import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO;
import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO;
@@ -61,6 +63,9 @@ public class BusinessDocumentOrderDomainService {
@Resource
private BusinessDocumentOrderMapper businessDocumentOrderMapper;
@Resource
private BusinessOrderAccountMapper businessOrderAccountMapper;
/**
* 分页查询【请填写功能名称】列表
*/
@@ -168,6 +173,8 @@ public class BusinessDocumentOrderDomainService {
tmsOrder.setRealCreateBy(String.valueOf(u.getUserid()));
tmsOrder.setRealCreateName(u.getUsername());
tmsOrder.setAppointShipper(userShipperPo.getShipperEnterpriseName());//20250-07-29修改:订单表委托方保存公司名字,而不是姓名
tmsOrder.setOrderSource(businessDocumentOrderDO.getOrderSource());
tmsOrder.setEntryNumber(businessDocumentOrderDO.getEntryNumber());
// tmsOrder.setSalesManager(u.getUserPo().getUserName());
String salesmanCodeNc = businessDocumentOrderDO.getSalesmanId();
@@ -313,6 +320,31 @@ public class BusinessDocumentOrderDomainService {
//保存货物信息及地址信息
saveAddress2CargoInfo(tmsOrder.getId(), allCargoList, loadingAddressList, unloadAddressList);
List<BusinessOrderAccount> tmsOrderAccountList=businessDocumentOrderDO.getBusinessOrderAccountList();
if(ObjectUtil.isNotNull(tmsOrderAccountList)&&tmsOrderAccountList.size()>0){
for (BusinessOrderAccount tmsOrderAccount:tmsOrderAccountList){
tmsOrderAccount.setIsDelete(0);
tmsOrderAccount.setOrderId(String.valueOf(tmsOrder.getId()));
tmsOrderAccount.setCreateBy(String.valueOf(u.getUserid()));
tmsOrderAccount.setCreateTime(new Date());
// 设置组织信息
if (businessDocumentOrderDO.getOrganizationId() != null) {
tmsOrderAccount.setOrganizationId(businessDocumentOrderDO.getOrganizationId());
}
if (businessDocumentOrderDO.getOrganizationName() != null) {
tmsOrderAccount.setOrganizationName(businessDocumentOrderDO.getOrganizationName());
}
if (businessDocumentOrderDO.getTopOrganizationId() != null) {
tmsOrderAccount.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId());
}
BigDecimal amount = tmsOrderAccount.getAmount();
// if (ObjectUtil.isNotEmpty(amount) && amount.compareTo(BigDecimal.ZERO) > 0) {
// tmsOrderAccountMapper.insert(tmsOrderAccount);
businessOrderAccountMapper.insert(tmsOrderAccount);
// }
}
}
return istrue;
}
@@ -534,6 +566,39 @@ public class BusinessDocumentOrderDomainService {
//保存货物信息及地址信息
saveAddress2CargoInfo(tmsOrder.getId(), allCargoList, loadingAddressList, unloadAddressList);
//删除原来的费用科目
List<BusinessOrderAccount> tmsOrderAccountList1=businessOrderAccountMapper.selectList(new LambdaQueryWrapper<BusinessOrderAccount>().eq(BusinessOrderAccount::getOrderId, businessDocumentOrderDO.getId()).eq(BusinessOrderAccount::getIsDelete, 0));
if(ObjectUtil.isNotNull(tmsOrderAccountList1)&&tmsOrderAccountList1.size()>0){
for (BusinessOrderAccount tmsOrderAccount:tmsOrderAccountList1){
tmsOrderAccount.setIsDelete(1);
tmsOrderAccount.setUpdateBy(String.valueOf(u.getUserid()));
tmsOrderAccount.setUpdateTime(new Date());
businessOrderAccountMapper.updateById(tmsOrderAccount);
}
}
//保存费用科目信息
List<BusinessOrderAccount> tmsOrderAccountList=businessDocumentOrderDO.getBusinessOrderAccountList();
if(ObjectUtil.isNotNull(tmsOrderAccountList)&&tmsOrderAccountList.size()>0){
for (BusinessOrderAccount tmsOrderAccount:tmsOrderAccountList){
tmsOrderAccount.setIsDelete(0);
tmsOrderAccount.setOrderId(String.valueOf(businessDocumentOrderDO.getId()));
tmsOrderAccount.setCreateBy(String.valueOf(u.getUserid()));
tmsOrderAccount.setCreateTime(new Date());
// 设置组织信息
if (businessDocumentOrderDO.getOrganizationId() != null) {
tmsOrderAccount.setOrganizationId(businessDocumentOrderDO.getOrganizationId());
}
if (businessDocumentOrderDO.getOrganizationName() != null) {
tmsOrderAccount.setOrganizationName(businessDocumentOrderDO.getOrganizationName());
}
if (businessDocumentOrderDO.getTopOrganizationId() != null) {
tmsOrderAccount.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId());
}
tmsOrderAccount.setId(IdUtil.randomUUID());
businessOrderAccountMapper.insert(tmsOrderAccount);
}
}
return istrue;
}
@@ -0,0 +1,107 @@
package com.mhd.oms.domain.businessOrderAccount;
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.math.BigDecimal;
import java.util.Date;
/**
* @author: brb
* @description:
* @create: 2026-04-11 10:46
*/
@Data
@TableName("business_order_account")
public class BusinessOrderAccount {
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;
}
@@ -0,0 +1,33 @@
package com.mhd.oms.domain.businessOrderAccount.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.oms.domain.businessOrderAccount.BusinessOrderAccount;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 业务订单科目Mapper接口
*
* @author gen
* @date 2026-04-11
*/
@Mapper
public interface BusinessOrderAccountMapper extends BaseMapper<BusinessOrderAccount> {
/**
* 查询业务订单科目列表
*
* @param businessOrderAccount 业务订单科目
* @return 业务订单科目集合
*/
List<BusinessOrderAccount> selectBusinessOrderAccountList(BusinessOrderAccount businessOrderAccount);
/**
* 根据订单ID查询业务订单科目
*
* @param orderId 订单ID
* @return 业务订单科目集合
*/
List<BusinessOrderAccount> selectBusinessOrderAccountByOrderId(String orderId);
}
@@ -110,4 +110,13 @@ public class ExecuteOrder extends BaseVOEntity{
@ApiModelProperty("tms单号")
private String tmsOrderNumber;
@ApiModelProperty("作业情况")
private String jobStatus;
@ApiModelProperty("预计运输时间")
private Date documentDate;
@ApiModelProperty("备注")
private String shippingNote;
}
@@ -153,6 +153,7 @@ public class ExecuteOrderImpl extends ServiceImpl<ExecuteOrderMapper, ExecuteOrd
for (BusinessDocumentAddressMulti businessDocumentAddressMulti:businessDocumentAddressMultiUnloadList){
TmsAddressMultiDTO tmsAddressMultiDTO=new TmsAddressMultiDTO();
BeanUtils.copyProperties(businessDocumentAddressMulti,tmsAddressMultiDTO);
tmsAddressMultiDTO.setLayType(2);
unloadAddressList.add(tmsAddressMultiDTO);
}
}
@@ -163,6 +164,9 @@ public class ExecuteOrderImpl extends ServiceImpl<ExecuteOrderMapper, ExecuteOrd
tmsOrderAddDTO.setUnloadAddressList(unloadAddressList);
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");
@@ -116,6 +116,13 @@ public class ExecuteOrderPO extends BaseVOEntity{
@ApiModelProperty("业务单号")
private String businessOrderNumber;
@ApiModelProperty("作业情况")
private String jobStatus;
@ApiModelProperty("预计运输时间")
private Date documentDate;
@ApiModelProperty("备注")
private String shippingNote;
}
@@ -126,4 +126,14 @@ public class ExecuteOrderDO extends BaseVOEntity{
@ApiModelProperty("业务单号")
private String businessOrderNumber;
@ApiModelProperty("作业情况")
private String jobStatus;
@ApiModelProperty("预计运输时间")
private Date documentDate;
@ApiModelProperty("备注")
private String shippingNote;
}
@@ -4,6 +4,7 @@ import com.mhd.common.core.annotation.Excel;
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;
import com.mhd.oms.domain.businessOrderAccount.BusinessOrderAccount;
import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO;
import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO;
import lombok.Data;
@@ -758,6 +759,12 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{
@ApiModelProperty(value = "审核意见")
private String reviewOpinion;
@ApiModelProperty("订单来源")
private String orderSource;
@ApiModelProperty(value = "出入库单号")
private String entryNumber;
@ApiModelProperty("业务单地址集合")
private List<BusinessDocumentAddressMultiDTO> businessDocumentAddressMultiDTOList;
@@ -774,4 +781,7 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{
@ApiModelProperty(value = "卸货地址集合")
private List<BusinessDocumentAddressMultiDTO> unloadAddressList;
@ApiModelProperty("费用科目明细")
private List<BusinessOrderAccount> businessOrderAccountList;
}
@@ -119,4 +119,13 @@ public class ExecuteOrderDTO extends BaseVOEntity{
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty("作业情况")
private String jobStatus;
@ApiModelProperty("预计运输时间")
private Date documentDate;
@ApiModelProperty("备注")
private String shippingNote;
}
@@ -64,6 +64,13 @@ public class BusinessDocumentOrderApi extends BaseController{
}
}
@ApiOperation("根据业务单id查询费用明细")
@GetMapping("/getFeeDetail/{id}")
public AjaxResult getFeeDetail(@PathVariable("id") Long id)
{
return AjaxResult.success(businessDocumentOrderApplicationService.getFeeDetail(id));
}
/**
* 批量删除【业务单】
*/
@@ -186,6 +186,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- <if test="realCreateName != null and realCreateName != ''">-->
<!-- and REAL_CREATE_NAME like concat('%', #{realCreateName}, '%')-->
<!-- </if>-->
<if test="orderSource != null and orderSource != ''">
and ORDER_SOURCE = #{orderSource}
</if>
<if test="createCompanyId != null and createCompanyId != ''">
and CREATE_COMPANY_ID = #{createCompanyId}
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mhd.oms.domain.businessOrderAccount.repository.mapper.BusinessOrderAccountMapper">
<resultMap type="com.mhd.oms.domain.businessOrderAccount.BusinessOrderAccount" id="BusinessOrderAccountResult">
<result property="id" column="id" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="sysOrgCode" column="sys_org_code" />
<result property="isDelete" column="is_delete" />
<result property="orgName" column="org_name" />
<result property="organizationId" column="organization_id" />
<result property="topOrganizationId" column="top_organization_id" />
<result property="organizationName" column="organization_name" />
<result property="orderId" column="order_id" />
<result property="accountId" column="account_id" />
<result property="accountType" column="account_type" />
<result property="subjectCode" column="subject_code" />
<result property="subjectName" column="subject_name" />
<result property="rate" column="rate" />
<result property="amount" column="amount" />
<result property="taxFreeFee" column="tax_free_fee" />
<result property="taxAmount" column="tax_amount" />
<result property="receiveAccount" column="receive_account" />
</resultMap>
<sql id="selectBusinessOrderAccountVo">
select id, create_by, create_time, update_by, update_time, sys_org_code, is_delete, org_name,
organization_id, top_organization_id, organization_name, order_id, account_id, account_type,
subject_code, subject_name, rate, amount, tax_free_fee, tax_amount, receive_account
from business_order_account
</sql>
<select id="selectBusinessOrderAccountList" parameterType="com.mhd.oms.domain.businessOrderAccount.BusinessOrderAccount" resultMap="BusinessOrderAccountResult">
<include refid="selectBusinessOrderAccountVo"/>
<where>
is_delete = 0
<if test="createBy != null and createBy != ''">
and create_by like concat('%', #{createBy}, '%')
</if>
<if test="orderId != null and orderId != ''">
and order_id = #{orderId}
</if>
<if test="accountId != null">
and account_id = #{accountId}
</if>
<if test="accountType != null">
and account_type = #{accountType}
</if>
<if test="subjectCode != null and subjectCode != ''">
and subject_code like concat('%', #{subjectCode}, '%')
</if>
<if test="subjectName != null and subjectName != ''">
and subject_name like concat('%', #{subjectName}, '%')
</if>
<if test="organizationId != null">
and organization_id = #{organizationId}
</if>
</where>
order by create_time desc
</select>
<select id="selectBusinessOrderAccountByOrderId" parameterType="String" resultMap="BusinessOrderAccountResult">
<include refid="selectBusinessOrderAccountVo"/>
where order_id = #{orderId} and is_delete = 0
order by create_time desc
</select>
</mapper>